シグナル
シグナル(Signal)
詳細は下記が詳しい
使われているシグナルの例:
Ctrl + cを押したときにSIGINT
SIGINT: Ctrl+C や Del キーを押したときに発生する割り込みシグナル INT: interrupt
kill -9 <proc_id>のときのSIGKILL
SIGKILL: プロセスを強制終了させるためのシグナル
Ctrl + zを押したときのSIGTSTP
TSTP: terminal stop
code:c
typedef void (*sighandler_t)(int);
// signal()はLinuxのバージョンによって動作が違う場合があるので
// 移植性を求める場合はsigactionを使用した方がよい
sighandler_t signal(int signum, sighandler_t sighandler);
int sigaction(int signum, const struct sigaction *act,
struct sigaction *oldact);
シグナルハンドラー内でprintfは使っていけないとのこと
理由としてはリエントラントな関数でないとデッドロックなどの再現しにくいバグを起こしてしまう 関連:
シグナル安全(signal-safety)
シグナルを使用するコマンド
関連
確認用
Q. シグナル
Q. シグナルの使い方
Q. シグナルの標準動作
Q. シグナルハンドラ
Q. シグナルでやってはいけないこと
Q. シグナルハンドラ内でprintfを使ってはいけない理由はなぜか
Q. シグナルの例
Q. シグナル一覧
参考
シグナルハンドラの処理について
メモ
調査用
Wikipedia.icon
Wikipedia.icon