9. signal.h
头文件signal处理程序运行时产生的信号的方法。
宏:
SIG_DFL
SIG_ERR
SIG_IGN
SIGABRT
SIGFPE
SIGILL
SIGINT
SIGSEGV
SIGTERM
函数:
signal();
raise();
变量:
typedef sig_atomic_t
9.1. 变量和定义
类型sig_atomic_t就是int,作为signal函数的handler中的变量。SIG_宏用于signal函数中用于定义信号函数。
SIG_DFL 默认handler。
SIG_ERR 表示错误信号。
SIG_IGN 忽略信号。
SIG宏代表下列情况下的信号编号。
SIGABRT 异常终止(由abort函数产生)。
SIGFPE 浮点错误(由零除运行、不合理操作产生)。
SIGILL 非法操作(指令)。
SIGINT 交互信号(比如我们熟悉的Ctrl-C)。
SIGSEGV 非法存储访问(段错误,内存错误)。
SIGTERM 终止请求。
9.2. signal
声明:
void (*signal(int sig, void (*func)(int)))(int);
该函数管理一个信号应该如何被操控。sig代表与SIG宏相容的信号编号。func函数会在信号产生时被调用。如果函数是SIG_DFL,则调用默认的handler。如果func是SIG_IGN,则信号被忽略。如果func指向一个函数,那么当检测到一个信号并执行默认handler时,该函数会被调用。函数必须携带一个int参数代表信号编号。函数可能被return,abort,exit,或者longjmp终止。当函数终止时,程序继续从中断处执行(除非是结果未定义的信号SIGFPE)。
如果信号调用成功,则返回指向之前特定信号类型的handler的指针。如果信号调用失败,则返回SIG_ERR并且将errno设置一个合理值。
http://www.56.com/p26/v_MTI0MDY5NzE5.html |
http://www.56.com/p71/v_MTI0MDcwMDI4.html |
http://www.56.com/p43/v_MTI0MDcwMjY0.html |
http://www.56.com/p49/v_MTI0MDcwNDQ2.html |
http://www.56.com/p81/v_MTI0MDcwNjU0.html |
http://www.56.com/p53/v_MTI0MDcwODAy.html |
http://www.56.com/p35/v_MTI0MDcxMjI0.html |
http://www.56.com/p83/v_MTI0MDcxNjI0.html |
http://www.56.com/p51/v_MTI0MDcxOTQ0.html |
http://www.56.com/p63/v_MTI0MDcyMTMy.html |