Provided by: manpages-cs-dev_4.27.0-1_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()                                                               │ Zabezpečení vláken │ MT-Safe │
       └────────────────────────────────────────────────────────────────────────┴────────────────────┴─────────┘

VERZE

       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().

STANDARDY

       C11, POSIX.1-2008.

HISTORIE

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

POZNÁMKY

       Funkce  registrované  pomocí  atexit()  (a on_exit(3)) nejsou volány, pokud je proces abnormálně ukončen,
       napří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.

       The  atexit()   and  on_exit(3)   functions  register  functions  on  the  same  list:  at normal process
       termination, 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 češ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.9.1                            15. června 2024                                       atexit(3)