C-standard-library-c-function-raise
提供:Dev Guides
Cライブラリ関数-raise()
説明
Cライブラリ関数* int raise(int sig)により、信号 *sig が生成されます。 sig 引数はSIGマクロと互換性があります。
宣言
以下は、signal()関数の宣言です。
int raise(int sig)
パラメーター
- sig -これは送信する信号番号です。 以下はいくつかの重要な標準信号定数です-
Sr.No. | Macro & Signal |
---|---|
1 |
SIGABRT (信号アボート)アボート機能によって開始されるなどの異常終了。 |
2 |
SIGFPE (信号浮動小数点例外)ゼロ除算やオーバーフローを引き起こす演算などの誤った算術演算(必ずしも浮動小数点演算ではない)。 |
3 |
SIGILL (信号の不正な命令)不正な命令などの無効な機能イメージ。 これは通常、コードの破損またはデータの実行の試行が原因です。 |
4 |
SIGINT (信号割り込み)インタラクティブな注意信号。 通常、アプリケーションユーザーによって生成されます。 |
5 |
SIGSEGV (信号セグメンテーション違反)ストレージへの無効なアクセス-プログラムがメモリの外で読み書きしようとすると、プログラムに割り当てられます。 |
6 |
SIGTERM (Signal Terminate)プログラムに送信された終了要求。 |
戻り値
この関数は、成功すればゼロを返し、そうでなければゼロ以外を返します。
例
次の例は、signal()関数の使用法を示しています。
#include <signal.h>
#include <stdio.h>
void signal_catchfunc(int);
int main () {
int ret;
ret = signal(SIGINT, signal_catchfunc);
if( ret == SIG_ERR) {
printf("Error: unable to set signal handler.\n");
exit(0);
}
printf("Going to raise a signal\n");
ret = raise(SIGINT);
if( ret !=0 ) {
printf("Error: unable to raise SIGINT signal.\n");
exit(0);
}
printf("Exiting...\n");
return(0);
}
void signal_catchfunc(int signal) {
printf("!! signal caught !!\n");
}
上記のプログラムをコンパイルして実行し、次の結果を生成しましょう-
Going to raise a signal
!! signal caught !!
Exiting...