機能 |
シグナルを受け取ったときの操作を設定する。 |
||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
定義 |
#include <signal.h> void (*signal ( int sig, void (*func)(int) ) ) (int); |
||||||||||||||||||||||||
引数 |
|
||||||||||||||||||||||||
戻り値 |
以前に設定されたfuncの値を返す。 指定された操作が処理できない場合、SIG_ERRを返してerrnoに正の値を格納する。 |
||||||||||||||||||||||||
実装例 |
#include <signal.h> #include <stdio.h> static volatile sig_atomic_t flag = 0; void func(int sig) { if (SIGINT == sig) { flag = 1; /* 割込み信号が入った時はflagを 1 にする */ } } int main(void) { signal( SIGINT, func ); /* Ctrl+Cなどの割込み信号が入った時はfunc関数を呼ぶ */ printf("Wait for SIGINT to occur.\n"); while ( flag == 0 ) { } /* flagが0以外になるまでループ */ printf("SIGINT occurred.\n"); return 0; } |
||||||||||||||||||||||||
実行結果 |
Wait for SIGINT to occur. (Ctrl+Cを押下) SIGINT occurred. |
signal()