デフォルトのランタイム・ライブラリ例外ハンドラの上書き

デフォルトのランタイム・ライブラリ例外ハンドラを上書きするには、アプリケーションで目的の信号の処理を変更する 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