C语言学习,标准库<signal.h>
<signal.h> C标准库中的一个头文件,用于处理信号。<signal.h>头文件定义了一个变量类型sig_atomic_t两个函数调用和一些宏来处理程序执行期间报告的不同信号。
信号是一种异步通知机制,允许进程在特定事件发生时执行预定义的处理函数。信号可以用于各种目的,比如处理中断、终止进程、处理异常等。
重要函数和宏,列举:
1.信号处理函数
typedef void (*sighandler_t)(int);
这是一个函数指针类型,用于指向信号处理函数。信号处理函数接受一个整数参数(信号编号),没有返回值。
sighandler_t signal(int signum, sighandler_t handler);
功能:设置信号处理程序。
参数:
signum:要处理的信号编号。
handler:指向信号处理函数的指针,或者为 SIG_IGN(忽略信号)或 SIG_DFL(默认处理)。
返回值:返回之前的信号处理程序的指针,如果出错则返回 SIG_ERR。
2.信号集操作
int sigemptyset(sigset_t *set);
功能:初始化信号集,使其不包含任何信号。
参数:set 指向要初始化的信号集。
返回值:成功返回 0,失败返回 -1 并设置 errno。
int sigfillset(sigset_t *set);
功能:初始化信号集,使其包含所有信号。
参数:set 指向要初始化的信号集。
返回值:成功返回 0,失败返回 -1 并设置 errno。
int sigaddset(sigset_t *set, int signum);
功能:向信号集中添加一个信号。
参数:
set:指向信号集。
signum:要添加的信号编号。
返回值:成功返回 0,失败返回 -1 并设置 errno。
int sigdelset(sigset_t *set, int signum);
功能:从信号集中删除一个信号。
参数:
set:指向信号集。
signum:要删除的信号编号。
返回值:成