Provided by: manpages-cs-dev_4.21.0-2_all bug

JMÉNO

       atexit - registruje funkci, která se má vyvolat při ukončení procesu

KNIHOVNA

       Standardní knihovna C (libc, -lc)

POUŽITÍ

       #include <stdlib.h>

       int atexit(void (*function)(void));

POPIS

       Funkce  atexit()  zařadí function do seznamu funkcí, které jsou vyvolány při normálním ukončení programu,
       ať už funkcí exit(3)  nebo návratem z funkce main. Funkce takto  registrované  jsou  volány  v  obráceném
       pořadí jejich registrace; nejsou jim poskytnuty žádné argumenty.

       The same function may be registered multiple times: it is called once for each registration.

       POSIX.1  vyžaduje,  aby  implementace  dovolovala  minimálně ATEXIT_MAX(32) registrací takovýchto funkcí.
       Skutečný počet možných registrací podporovaných v dané implementaci je možné zjistit pomocí sysconf(3).

       Při vytvoření procesu pomocí fork(2), zdědí potomek registrace svých rodičů. Při úspěšném  volání  funkce
       exec(3), jsou všechny registrace odstraněny.

NÁVRATOVÉ HODNOTY

       Funkce atexit() vrací hodnotu 0, byla-li úspěšná, jinak je vrácena nenulová hodnota.

ATRIBUTY

       Vysvětlení pojmů použitých v této části viz attributes(7).
       ┌─────────────────────────────────────────────────────────────────────────────┬───────────────┬─────────┐
       │ RozhraníAtributHodnota │
       ├─────────────────────────────────────────────────────────────────────────────┼───────────────┼─────────┤
       │ atexit()                                                                    │ Thread safety │ MT-Safe │
       └─────────────────────────────────────────────────────────────────────────────┴───────────────┴─────────┘

STANDARDY

       POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.

POZNÁMKY

       Funkce registrované pomocí atexit() (a on_exit(3)) nejsou volány, pokud je proces abnormálně ukončen, na‐
       příklad kvůli doručení signálu.

       If  one of the registered functions calls _exit(2), then any remaining functions are not invoked, and the
       other process termination steps performed by exit(3)  are not performed.

       POSIX.1 says that the result of calling exit(3)  more than once (i.e., calling exit(3)  within a function
       registered using atexit())  is undefined. On some systems (but not Linux), this can result in an infinite
       recursion; portable programs should not invoke exit(3)  inside a function registered using atexit().

       The atexit()  and on_exit(3)  functions register functions on the same list: at normal process terminati‐
       on, the registered functions are invoked in reverse order of their registration by these two functions.

       According to POSIX.1, the result is undefined if longjmp(3)  is used to terminate execution of one of the
       functions registered using atexit().

   Linuxová poznámka
       Od verze glibc 2.2.3, mohou být atexit() (a on_exit(3)) použity uvnitř sdílených knihoven, aby  spouštěly
       funkce, které jsou volány, je-li knihovna uvolněna z paměti.

PŘÍKLADY

       #include <stdio.h>
       #include <stdlib.h>
       #include <unistd.h>

       void
       bye(void)
       {
           printf("That was all, folks\n");
       }

       int
       main(void)
       {
           long a;
           int i;

           a = sysconf(_SC_ATEXIT_MAX);
           printf("ATEXIT_MAX = %ld\n", a);

           i = atexit(bye);
           if (i != 0) {
               fprintf(stderr, "cannot set exit function\n");
               exit(EXIT_FAILURE);
           }

           exit(EXIT_SUCCESS);
       }

DALŠÍ INFORMACE

       _exit(2), dlopen(3), exit(3), on_exit(3)

PŘEKLAD

       Překlad této příručky do španělštiny vytvořili Pavel Heimlich <tropikhajma@gmail.com>

       Tento  překlad  je  bezplatná  dokumentace; Přečtěte si GNU General Public License Version 3 nebo novější
       ohledně podmínek autorských práv. Neexistuje ŽÁDNÁ ODPOVĚDNOST.

       Pokud narazíte na nějaké chyby v překladu této  příručky,  pošlete  e-mail  na  adresu  translation-team-
       cs@lists.sourceforge.net.

Linux man-pages 6.03                              5. února 2023                                        atexit(3)