デフォルトのランタイム・ライブラリ例外ハンドラを上書きするには、アプリケーションで目的の信号の処理を変更する signal を呼び出す必要があります。
例えば、信号の処理を abort() を呼び出して core ファイルを生成するように変更するとします。
次の例では、clear_signal_ という関数を追加し、signal() を呼び出して SIGABRT 信号の処理を変更します:
#include <signal.h>
void clear_signal_()
{
signal (SIGABRT, SIG_DFL);
}
int myabort_()
{
abort();
return 0;
}
ローカルの clear_signal() ルーチンの呼び出しをメインに追加する必要があります。この場合、呼び出しがローカルの myabort() ルーチンの呼び出しの前に記述されるようにします:
program aborts
integer i
call clear_signal()
i = 3
if (i < 5) then
call myabort()
end if
end