OSDN Git Service

(split) LDP: Update releases to LDP v3.40.
[linuxjm/LDP_man-pages.git] / release / man3 / atexit.3
index 63165b1..da361c5 100644 (file)
 .\" Modified 1993-07-24, Rik Faith (faith@cs.unc.edu)
 .\" Modified 2003-10-25, Walter Harms
 .\"
-.\" Japanese Version Copyright (c) 1996 Kentaro OGAWA
-.\"         all rights reserved.
-.\" Translated 2006-07-14, Kentaro OGAWA <k_ogawa@oyna.cc.muroran-it.ac.jp>
-.\" Updated & Modified 2004-05-23, Yuichi SATO <ysato444@yahoo.co.jp>
-.\" Updated 2008-12-26, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v3.15
+.\"*******************************************************************
 .\"
-.TH ATEXIT 3  2008-12-05 "Linux" "Linux Programmer's Manual"
-.SH Ì¾Á°
-atexit \- ¥×¥í¥»¥¹¤¬Àµ¾ï½ªÎ»¤·¤¿»þ¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë´Ø¿ô¤òÅÐÏ¿¤¹¤ë
-.SH ½ñ¼°
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH ATEXIT 3 2008\-12\-05 Linux "Linux Programmer's Manual"
+.SH 名前
+atexit \- プロセスが正常終了した時に呼び出される関数を登録する
+.SH 書式
 .nf
-.B #include <stdlib.h>
+\fB#include <stdlib.h>\fP
 .sp
-.BI "int atexit(void (*" function )(void));
+\fBint atexit(void (*\fP\fIfunction\fP\fB)(void));\fP
 .fi
-.SH ÀâÌÀ
-.BR atexit ()
-´Ø¿ô¤Ï¡¢Í¿¤¨¤é¤ì¤¿ \fIfunction\fP ¤ò¡¢
-.BR exit (3)
-¤ä¥×¥í¥°¥é¥à¤Î \fImain\fP()
-´Ø¿ô¤«¤é¤ÎÊÖ¤ê¤òÄ̤¸¤Æ¡¢¥×¥í¥»¥¹¤¬Àµ¾ï½ªÎ»¤·¤¿»þ¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë
-´Ø¿ô¤È¤·¤ÆÅÐÏ¿¤¹¤ë¡£
-¤³¤³¤ÇÄêµÁ¤µ¤ì¤¿´Ø¿ô¤Ï¡¢ÅÐÏ¿¤·¤¿½çÈ֤ȤϵդνçÈ֤ǸƤӽФµ¤ì¤ë¡£
-ÅÐÏ¿¤·¤¿´Ø¿ô¤Ë°ú¤­¿ô¤ÏÅϤµ¤ì¤Ê¤¤¡£
+.SH 説明
+\fBatexit\fP()  関数は、与えられた \fIfunction\fP を、 \fBexit\fP(3)  やプログラムの \fImain\fP()
+関数からの返りを通じて、プロセスが正常終了した時に呼び出される 関数として登録する。 ここで定義された関数は、登録した順番とは逆の順番で呼び出される。
+登録した関数に引き数は渡されない。
 
-Ʊ¤¸´Ø¿ô¤òÊ£¿ô²óÅÐÏ¿¤·¤Æ¤â¤è¤¤¡£
-ÅÐÏ¿¤µ¤ì¤¿´Ø¿ô¤ÏÅÐÏ¿ 1 ²ó¤Ë¤Ä¤­ 1 ²ó¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
+同じ関数を複数回登録してもよい。 登録された関数は登録 1 回につき 1 回呼び出される。
 .LP
-POSIX.1-2001 ¤Ç¤Ï¡¢¤³¤Î¤è¤¦¤Ê´Ø¿ô¤ò¾¯¤Ê¤¯¤È¤â
-.B ATEXIT_MAX
-¸Ä (32¸Ä) ÅÐÏ¿¤Ç¤­¤ë¤³¤È¤òÍ׵ᤷ¤Æ¤¤¤ë¡£
-¤½¤Î¼ÂÁõ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¼ÂºÝ¤Î¾å¸Â¤Ï
-.BR sysconf (3)
-¤ò»È¤Ã¤Æ¼èÆÀ¤Ç¤­¤ë¡£
+POSIX.1\-2001 では、このような関数を少なくとも \fBATEXIT_MAX\fP 個 (32個) 登録できることを要求している。
+その実装でサポートされている実際の上限は \fBsysconf\fP(3)  を使って取得できる。
 .LP
-.BR fork (2)
-¤ÇºîÀ®¤µ¤ì¤¿¾ì¹ç¡¢»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤ÎÅÐÏ¿¤Î¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£
-.BR exec (3)
-¥Õ¥¡¥ß¥ê¡¼¤Î´Ø¿ô¤Î¤¤¤º¤ì¤«¤Î¸Æ¤Ó½Ð¤·¤ËÀ®¸ù¤¹¤ë¤È¡¢
-Á´¤Æ¤ÎÅÐÏ¿¤¬ºï½ü¤µ¤ì¤ë¡£
-.SH ÊÖ¤êÃÍ
-.BR atexit ()
-´Ø¿ô¤Ï¡¢´Ø¿ôÅÐÏ¿¤¬À®¸ù¤·¤¿»þ¤Ë¤Ï 0 ¤òÊÖ¤¹¡£
-¤½¤Î¾¤Î¾ì¹ç¤Ë¤Ï 0 °Ê³°¤ÎÃͤòÊÖ¤¹¡£
-.SH ½àµò
-SVr4, 4.3BSD, C89, C99, POSIX.1-2001.
-.SH Ãí°Õ
-.BR atexit ()
-(¤È
-.BR on_exit (3))
-¤ò»È¤Ã¤ÆÅÐÏ¿¤µ¤ì¤¿´Ø¿ô¤Ï¡¢
-¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¤Ë¤è¤ê¥×¥í¥»¥¹¤¬°Û¾ï½ªÎ»¤·¤¿¾ì¹ç¤Ë¤Ï¸Æ¤Ó½Ð¤µ¤ì¤Ê¤¤¡£
+\fBfork\fP(2) で作成された場合、子プロセスは親プロセスの登録のコピーを継承する。
+\fBexec\fP(3) ファミリーの関数の場合、呼び出しに成功すると、 全ての登録が削除される。
+.SH 返り値
+\fBatexit\fP()  関数は、関数登録が成功した時には 0 を返す。 その他の場合には 0 以外の値を返す。
+.SH 準拠
+SVr4, 4.3BSD, C89, C99, POSIX.1\-2001.
+.SH 注意
+\fBatexit\fP()  (と \fBon_exit\fP(3))  を使って登録された関数は、
+シグナルの配送によりプロセスが異常終了した場合には呼び出されない。
 
-ÅÐÏ¿¤µ¤ì¤¿´Ø¿ô¤Î°ì¤Ä¤¬
-.BR _exit (2)
-¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¡¢»Ä¤ê¤Î´Ø¿ô¤Ï¤É¤ì¤âµ¯Æ°¤µ¤ì¤º¡¢
-.BR exit (3)
-¤Ë¤è¤ê¼Â¹Ô¤µ¤ì¤ë¾¤Î¥×¥í¥»¥¹½ªÎ»¥¹¥Æ¥Ã¥×¤Ï¼Â¹Ô¤µ¤ì¤Ê¤¤¡£
+登録された関数の一つが \fB_exit\fP(2)  を呼び出した場合、残りの関数はどれも起動されず、 \fBexit\fP(3)
+により実行される他のプロセス終了ステップは実行されない。
 
-POSIX.1-2001 ¤Ç¤Ï¡¢
-.BR atexit (3)
-¤ò»È¤Ã¤ÆÅÐÏ¿¤µ¤ì¤¿°ì¤Ä¤Î´Ø¿ôÆâ¤Ç¡¢Ê£¿ô²ó
-.BR exit (3)
-¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Î·ë²Ì¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£
 .\" This can happen on OpenBSD 4.2 for example, and is documented
 .\" as occurring on FreeBSD as well.
 .\" Glibc does "the Right Thing" -- invocation of the remaining
 .\" exit handlers carries on as normal.
-(Linux ¤Ç¤Ï¤Ê¤¤¤¬) ¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤Î¾ì¹ç¡¢
-·«¤êÊÖ¤·¤¬Ìµ¸Â¤Ëµ¯¤³¤ë¤³¤È¤Ë¤Ê¤ë¡£
-°Ü¿¢À­¤¬É¬Í×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¡¢
-.BR atexit (3)
-¤ÇÅÐÏ¿¤µ¤ì¤¿´Ø¿ôÆâ¤Ç
-.BR exit (3)
-¤òµ¯Æ°¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£
+POSIX.1\-2001 では、 \fBatexit\fP()  を使って登録された一つの関数内で、複数回 \fBexit\fP(3)
+を呼び出した際の結果は未定義である。 (Linux ではないが) いくつかのシステムでは、この場合、 繰り返しが無限に起こることになる。
+移植性が必要なプログラムでは、 \fBatexit\fP()  で登録された関数内で \fBexit\fP(3)  を起動すべきではない。
 
-.BR atexit ()
-¤È
-.BR on_exit (3)
-¤Ï¡¢Æ±¤¸¥ê¥¹¥È¤ËÂФ·¤Æ´Ø¿ô¤òÅÐÏ¿¤¹¤ë¡£
-¥×¥í¥»¥¹¤¬Àµ¾ï¤Ë½ªÎ»¤·¤¿ºÝ¤Ë¤Ï¡¢
-¤³¤ì¤é¤ÎÆó¤Ä¤Î´Ø¿ô¤ÇÅÐÏ¿¤µ¤ì¤¿½ç½ø¤ÎµÕ½ç¤Ç¡¢
-ÅÐÏ¿¤µ¤ì¤¿´Ø¿ô¤¬µ¯Æ°¤µ¤ì¤ë¡£
+\fBatexit\fP()  と \fBon_exit\fP(3)  は、同じリストに対して関数を登録する。 プロセスが正常に終了した際には、
+これらの二つの関数で登録された順序の逆順で、 登録された関数が起動される。
 
-POSIX.1-2001 ¤Ç¤Ï¡¢
-.BR atexit (3)
-¤ÇÅÐÏ¿¤µ¤ì¤¿´Ø¿ô¤Î¼Â¹Ô¤ò½ªÎ»¤¹¤ë¤¿¤á¤Ë
-.BR longjmp (3)
-¤¬»ÈÍѤµ¤ì¤¿¾ì¹ç¤Î·ë²Ì¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£
 .\" In glibc, things seem to be handled okay
-.SS Linux ¤Ç¤ÎÃí°Õ
-glibc 2.2.3 °Ê¹ß¤Ç¤Ï¡¢¶¦Í­¥é¥¤¥Ö¥é¥ê¤¬¥¢¥ó¥í¡¼¥É¤µ¤ì¤ë¤È¤­¤Ë¸Æ¤Ð¤ì¤ë
-´Ø¿ô¤òÅÐÏ¿¤¹¤ë¤¿¤á¤Ë¡¢¶¦Í­¥é¥¤¥Ö¥é¥ê¤ÎÃæ¤Ç
-.BR atexit ()
-(¤È
-.BR on_exit (3))
-¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
-.PP
-.SH Îã
+POSIX.1\-2001 では、 \fBatexit\fP()  で登録された関数の実行を終了するために \fBlongjmp\fP(3)
+が使用された場合の結果は未定義である。
+.SS "Linux での注意"
+glibc 2.2.3 以降では、共有ライブラリがアンロードされるときに呼ばれる 関数を登録するために、共有ライブラリの中で \fBatexit\fP()
+(と \fBon_exit\fP(3))  を使用することができる。
+.SH 例
 .nf
 #include <stdio.h>
 #include <stdlib.h>
@@ -156,7 +112,9 @@ main(void)
     exit(EXIT_SUCCESS);
 }
 .fi
-.SH ´ØÏ¢¹àÌÜ
-.BR _exit (2),
-.BR exit (3),
-.BR on_exit (3)
+.SH 関連項目
+\fB_exit\fP(2), \fBexit\fP(3), \fBon_exit\fP(3)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.40 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。