首页 / 软件开发 / C语言 / C标准库参考指南(9)signal.h
C标准库参考指南(9)signal.h2013-04-28 柳惊鸿 9. signal.h头文件signal处理程序运行时产生的信号的方法。宏:SIG_DFLSIG_ERRSIG_IGNSIGABRTSIGFPESIGILLSIGINTSIGSEGVSIGTERM函数:signal();raise();变量:typedef sig_atomic_t9.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设置一个合理值。