跳转到内容

C++ 编程/代码/标准 C 库/函数/signal

来自 Wikibooks,开放书籍,构建开放世界
语法
#include <csignal>
void (*signal( int sig, void (*handler)(int)) )(int)

signal() 函数接受两个参数 - 第一个参数是信号标识符,第二个参数是指向信号处理函数的函数指针,该函数指针接受一个参数。signal 的返回值是指向先前处理函数的函数指针(如果更改信号处理函数时出错,则为 SIG_ERR)。

默认情况下,大多数引发的信号都由处理程序 SIG_DFL(通常会关闭程序的默认信号处理程序)或 SIG_IGN(忽略信号并继续程序执行)处理。

当您指定自定义处理程序并引发信号时,信号处理程序会恢复为默认值。

虽然信号处理程序已被 throwcatch 取代,但某些系统可能仍然要求您使用这些函数来处理某些重要事件。例如,基于 Unix 的系统上的 SIGTERM 信号表示程序应尽快终止。

注意
Solaris 中的标准信号列表
SIGHUP,SIGINT,SIGQUIT,SIGILL,SIGTRAP,SIGABRT,SIGEMT,SIGFPE,SIGKILL,SIGBUS,SIGSEGV,SIGSYS,SIGPIPE,SIGALRM,SIGTERM,SIGUSR1,SIGUSR2,SIGCHLD,SIGPWR,SIGWINCH,SIGURG,SIGIO,SIGSTOP,SIGTSTP,SIGCONT,SIGTTIN,SIGTTOU,SIGVTALRM,SIGPROF,SIGXCPU,SIGXFSZ,SIGWAITING,SIGLWP,SIGFREEZE,SIGTHAW,SIGCANCEL,SIGLOST

相关主题
raise
华夏公益教科书