Cでは、「メインプロセスが終了する」間のリンクを欠落し、「ATEXITに登録されている関数を呼び出す」
質問
cで、メインプロセスが終了したとき - 登録されている関数を呼び出すことはどのように知っていますか atexit()
?
私はその方法を理解しています atexit()
動作しますが、「メインプロセスエンディング」と「登録されている機能を呼び出す」の間の通信がわかりません atexit()
「私は少し冗長です。
ありがとう!
解決
から C標準 PDFリンク](5.1.2.2.3):
最初の呼び出しからのリターン
main
関数は呼び出しに相当しますexit
によって返される値を持つ関数main
その議論として機能します。に到達します}
メイン関数を終了する値は値を返します0
.
それはの責任です exit
登録されている関数を呼び出す関数 atexit
(すべての説明については、標準の7.20.4.3を参照してください exit
します)。
他のヒント
cで、 main()
関数は実際には、ランタイムに組み込まれている他の関数によって呼び出されます。この関数、後 main()
関数は終了し、クリーンアップするためにさらにいくつかのことを行います。そのうちの1つは、 atexit()
. 。この関数は、実際には機能ポインターの何らかの静的リストを保存します。これは、ランタイムの後に呼び出されます main()
.
所属していません StackOverflow