Oracle® Solaris Studio 12.4: C ユーザーガイド

印刷ビューの終了

更新: 2014 年 12 月
 
 

2.11.9 fini

#pragma fini (f1[, f2…,fn]

main() ルーチンを呼び出したあと、f1 から fn (終了関数) までの関数を呼び出します。そのような関数では、型が void で、かつ引数を一切受け入れないことが期待されます。これらが呼び出されるのは、プログラムがプログラム制御下で終了したとき、または包含元の共有オブジェクトがメモリーから削除されたときです。初期化関数の場合と同様、終了関数もリンクエディタによって処理された順に実行されます。

大域プログラム状態が初期化関数の影響を受ける場合には注意が必要です。たとえばシステムライブラリ終了関数を使用したときに何が発生するかがインタフェースに明示的に規定されていないかぎり、システムライブラリ初期化関数によって変更される可能性がある errno の値などの大域状態情報をすべて取得し、復元するようにしてください

このような関数は #pragma fini 指令の中に登場するたびに、1 回呼び出されます。