インテル® Fortran コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

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

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