Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
を使用して登録された関数の場合atexit(): それらへの参照を取得して直接呼び出すことは可能ですか?
atexit()
gccこれは一般的な質問ですが、 /の使用に関する解決策glibcは大歓迎です。
gcc
glibc
ポータブルな方法ではありません。登録されている関数のリストはランタイムライブラリによって所有されており、それにアクセスするためのインターフェイスはありません。
コメントによるglibcの詳細については、exitハンドラーはexit.cとexit.hによって実装されます。抽象化/データの隠蔽をドリルスルーできることを理解するのに十分なほど、それらを徹底的に研究していません。たとえば、一般的に利用できない可能性のあるglibc固有のヘッダーを含める必要がある場合があります。
いいえ。ただし、アプリケーション内のすべてのコードを制御できる場合は、自分でリストを維持しatexit()、システムが終了したときにリストを実行する単一の関数を real に登録できます。