インテル® Fortran コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
信号 は、次に示すような、さまざまな発信元から生成されるアブノーマルなイベントです。
端末のユーザー
プログラムまたはハードウェアのエラー
別のプログラムからの要求
制御端末にアクセスできるようにプロセスが停止されたとき
例えば、次のような特定のイベントに対して、信号の発行を設定できます。
プロセスが停止された後に、プロセスを再開するとき
子プロセスの状況が変化したとき
端末で入力可能な状態になったとき
何も処理が行われない場合に受信プロセスを終了する信号 (オプションで、core ファイルを作成) と、プロセスが何か要求しない限り無視されるだけの信号があります。
特定の信号を除いて、signal または sigaction ルーチンを呼び出すことによって、指定した信号を無視するか、またはユーザーが記述した信号ハンドラーの位置に割り込みを発生させる (制御を渡す) ことができます。
信号に対して signal を呼び出し、次のいずれかの処理を設定できます。
指定した信号 (番号による指定) を無視する。
指定した信号に対してデフォルトの処理を行う。これによって、以前に設定した処理をリセットできます。
指定した信号から、名前によって指定された信号を受け取るためのプロシージャーに制御を移す。
signal ルーチンを呼び出すことによって、信号に対する処理を変更できます (オペレーティング・システムの信号を遮断して、プロセスの中断を防止するなど)。
プログラムを起動すると、インテル® Fortran RTL は以下の信号を検出するように準備します。
信号 |
インテル® Fortran RTL メッセージ |
---|---|
SIGFPE |
浮動小数点例外 (番号 75) |
SIGINT |
プロセスが中断されました (番号 69) |
SIGIOT |
異常終了トラップシグナル (番号 76) |
SIGQUIT |
プロセスを中止しました (番号 79) |
SIGSEGV |
セグメンテーション違反 (番号 174) |
SIGTERM |
プロセスを終了しました (番号 78) |
signal ルーチンを呼び出す (各信号の番号を指定する) ことで、インテル® Fortran RTL によって設定された信号処理機能が無視されます。デフォルトの処理を復元するには、最初の signal の呼び出しから返された値を保存する方法しかありません。
デバッガーを使用している場合は、インテル® Fortran RTL が適切な信号を受け取り、処理できるコマンドを入力しなければならないことがあります。