C 標準ライブラリ - <signal.h>
はじめに
signal.h ヘッダー ファイルは、変数タイプ sig_atomic_t、プログラムの実行中に報告されるさまざまなシグナルを処理するための 2 つの関数呼び出し、およびいくつかのマクロを定義します。
ライブラリ変数
ヘッダーファイル signal.h で定義されている変数の型は次のとおりです:
シリアル番号 | 変数と説明 |
---|---|
1 | sig_atomic_t int型、シグナル内 ハンドラー内の変数として使用されます。これは、非同期信号が存在する場合でもアトミック エンティティとしてアクセスできるオブジェクトの整数型です。 |
ライブラリマクロ
以下は、ヘッダファイル signal.h で定義されているマクロです。これらのマクロは、次の 2 つの関数で使用されます。 SIG_ マクロは、シグナル関数とともに使用され、シグナルの機能を定義します。
シリアル番号 | マクロと説明 |
---|---|
1 | SIG_DFL デフォルトのシグナルハンドラ。 |
2 | SIG_ERR は信号エラーを示します。 |
3 | SIG_IGN 信号を無視します。 |
SIG マクロは、次の条件の信号番号を表すために使用されます:
シリアル番号 | マクロと説明 |
---|---|
1 | SIGABRT プログラムが異常終了しました。 |
2 | SIGFPE 0 による除算やオーバーフローなどの算術演算エラー。 |
3 | SIGILL 不正な命令などの不正な機能の画像。 |
4 | SIGINT Ctrl-C などの割り込み信号。 |
5 | SIGSEGV 存在しないメモリユニットへのアクセスなど、メモリへの不正なアクセス。 |
6 | SIGTERM このプログラムに送信される終了要求シグナル。 |
ライブラリ関数
ヘッダーファイル signal.h で定義されている関数は次のとおりです:
シリアル番号 | 関数と説明 |
---|---|
1 | void (*signal(int sig, void (* func)(int)))(int) この関数は、シグナルを処理する関数、つまりシグナルハンドラーを設定します。 |
2 | int raise(int sig) この関数は、信号 sig を生成します。 sig パラメータは SIG マクロと互換性があります。 |