基础信号管理:原理、操作与应用
1. 信号基本行为设置
在信号处理中,有两个重要的常量用于设置信号的行为:
-SIG_DFL:将signo指定的信号行为设置为默认行为。例如,对于SIGPIPE信号,进程会终止。
-SIG_IGN:忽略signo指定的信号。
signal()函数用于设置信号的处理方式,它返回信号之前的行为,可能是信号处理函数的指针、SIG_DFL或SIG_IGN。若出现错误,函数返回SIG_ERR,且不会设置errno。
2. 等待信号
pause()是POSIX定义的系统调用,用于使进程进入睡眠状态,直到接收到一个被处理或会终止进程的信号:
#include <unistd.h> int pause (void);当接收到捕获的信号时,pause()返回 -1,并将errno设置为EINTR。若内核引发一个被忽略的信号,进程不会被唤醒。在Linux内核中,pause()是较为简单的系统调用,它主要