atexit

Autres langues

Langue: ja

Version: 2003-11-01 (openSuse - 09/10/07)

Section: 3 (Bibliothèques de fonctions)

̾Á°

atexit - ¥×¥í¥»¥¹¤¬Àµ¾ï½ªÎ»¤·¤¿»þ¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë´Ø¿ô¤òÅÐÏ¿¤¹¤ë

½ñ¼°


#include <stdlib.h>



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

ÀâÌÀ

atexit() ´Ø¿ô¤Ï¡¢Í¿¤¨¤é¤ì¤¿ function ¤ò¡¢ exit(3) ¤ä¥×¥í¥°¥é¥à¤Î main() ´Ø¿ô¤«¤é¤ÎÊÖ¤ê¤òÄ̤¸¤Æ¡¢¥×¥í¥»¥¹¤¬Àµ¾ï½ªÎ»¤·¤¿»þ¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë ´Ø¿ô¤È¤·¤ÆÅÐÏ¿¤¹¤ë¡£ ¤³¤³¤ÇÄêµÁ¤µ¤ì¤¿´Ø¿ô¤Ï¡¢ÅÐÏ¿¤·¤¿½çÈ֤ȤϵդνçÈ֤ǸƤӽФµ¤ì¤ë¡£ ÅÐÏ¿¤·¤¿´Ø¿ô¤Ë°ú¤­¿ô¤ÏÅϤµ¤ì¤Ê¤¤¡£

POSIX.1-2001 ¤Ç¤Ï¡¢¤³¤Î¤è¤¦¤Ê´Ø¿ô¤ò¾¯¤Ê¤¯¤È¤â ATEXIT_MAX ¸Ä (32¸Ä) ÅÐÏ¿¤Ç¤­¤ë ¤³¤È¤òÍ׵ᤷ¤Æ¤¤¤ë¡£¤½¤Î¼ÂÁõ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¼ÂºÝ¤Î¾å¸Â¤Ï sysconf(3) ¤ò»È¤Ã¤Æ¼èÆÀ¤Ç¤­¤ë¡£

fork(2) ¤ÇºîÀ®¤µ¤ì¤¿¾ì¹ç¡¢»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤ÎÅÐÏ¿¤Î¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£ exec(3) ¥Õ¥¡¥ß¥ê¡¼¤Î´Ø¿ô¤Î¤¤¤º¤ì¤«¤Î¸Æ¤Ó½Ð¤·¤ËÀ®¸ù¤¹¤ë¤È¡¢ Á´¤Æ¤ÎÅÐÏ¿¤¬ºï½ü¤µ¤ì¤ë¡£

ÊÖ¤êÃÍ

atexit() ´Ø¿ô¤Ï¡¢´Ø¿ôÅÐÏ¿¤¬À®¸ù¤·¤¿»þ¤Ë¤Ï 0 ¤òÊÖ¤¹¡£ ¤½¤Î¾¤Î¾ì¹ç¤Ë¤Ï 0 °Ê³°¤ÎÃͤòÊÖ¤¹¡£

½àµò

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

Ãí°Õ

atexit() (¤È on_exit(3)) ¤ò»È¤Ã¤ÆÅÐÏ¿¤µ¤ì¤¿´Ø¿ô¤Ï¡¢ ¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¤Ë¤è¤ê¥×¥í¥»¥¹¤¬°Û¾ï½ªÎ»¤·¤¿¾ì¹ç¤Ë¤Ï¸Æ¤Ó½Ð¤µ¤ì¤Ê¤¤¡£

Linux ¤Ç¤ÎÃí°Õ

glibc 2.2.3 °Ê¹ß¤Ç¤Ï¡¢¶¦Í­¥é¥¤¥Ö¥é¥ê¤¬¥¢¥ó¥í¡¼¥É¤µ¤ì¤ë¤È¤­¤Ë¸Æ¤Ð¤ì¤ë ´Ø¿ô¤òÅÐÏ¿¤¹¤ë¤¿¤á¤Ë¡¢¶¦Í­¥é¥¤¥Ö¥é¥ê¤ÎÃæ¤Ç atexit() (¤È on_exit(3)) ¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

Îã


#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");

       return EXIT_FAILURE;

    }

    return EXIT_SUCCESS;

}

´ØÏ¢¹àÌÜ

_exit(3), exit(3), on_exit(3)