exit
でインストールされた終了ハンドラー内に渡された終了コードを知る「組み込み」の方法はありatexit
ますか?
たとえば、 の呼び出しの場合exit(EXIT_FAILURE)
、ハンドラーは の場合とは異なる操作を実行しますexit(EXIT_SUCCESS)
。
exit
グローバル変数を使用してこれを解決することはできますが、それではプログラムのどこにいても呼び出しの快適さが失われます。
atexit
いいえ。on_exit
しかし、次の関数を使用できます。
関数: int on_exit (void (*function)(int status, void *arg), void *arg)
この関数は、atexit のより強力なバリアントです。関数 function と任意のポインター arg の 2 つの引数を受け入れます。通常のプログラムの終了時に、関数は 2 つの引数で呼び出されます。exit に渡されるステータス値と arg です。
この関数は、SunOS との互換性のためにのみ GNU C ライブラリに含まれており、他の実装ではサポートされていない場合があります。
まあ、あなたはgnu libcを使わなければなりません...