- 追加された行はこの色です。
- 削除された行はこの色です。
#topicpath
/////////////////////////////////////////////////////////////////////////////////
* 目次 [#k9200455]
#contents();
/////////////////////////////////////////////////////////////////////////////////
* [#g3c148bc]
/////////////////////////////////////////////////////////////////////////////////
* API [#w3f34007]
//===============================================================================
** signal() [#zff999cc]
include <signal.h>
typedef void (*sighandler_t)(int);
sighandler_t signal(int signum, sighandler_t sighandler);
- signal() はシグナル signum の処理方法を handler に設定する。
- handler には、 SIG_IGN、 SIG_DFL、 プログラマが定義した関数 (「シグナル・ハンドラ」) のアドレスの いずれかを指定する。
- 処理方法が SIG_IGN に設定されている場合、そのシグナルは無視される。
- 処理方法が SIG_DFL に設定されている場合、シグナルに関連づけられた デフォルトの動作が行われる (signal(7) 参照)。
- 処理方法として関数が設定されている場合、まず最初に処理方法が ''SIG_DFL'' にリセットされるかそのシグナルのブロックが実行された後、 signum を引き数として handler が呼び出される。ハンドラが起動される際にシグナルがブロックされた場合、 ハンドラが返る際にそのシグナルのブロックが解除される。
- シグナル ''SIGKILL'' と ''SIGSTOP'' は捕捉できず、無視することもできない。
- マルチスレッドプロセスにおける signal() の結果は、指定されていない。
//===============================================================================
** sigaction() [#nbb8f9b6]