Linux 信号与时间管理:深入解析与应用
1. 信号管理基础
在 Linux 系统中,信号是一种重要的进程间通信机制。POSIX 定义了一系列函数来处理信号,其中sigpending()函数用于检索待处理信号集。其函数原型如下:
#include <signal.h> int sigpending (sigset_t *set);若调用成功,该函数会将待处理信号集存储在set中,并返回 0;若失败,则返回 -1,并将errno设置为EFAULT,表示set是无效指针。
另一个重要的函数是sigsuspend(),它允许进程临时更改信号掩码,然后等待信号的到来。函数原型为:
#include <signal.h> int sigsuspend (const sigset_t *set);如果信号导致进程终止,sigsuspend()不会返回;若信号被处理,在信号处理程序返回后,sigsuspend()返回 -1,并将errno设置为EINTR;若set是无效指针,errno