信号与时间管理:深入理解操作系统的关键机制
信号管理基础
在操作系统中,信号是进程间通信和内核与用户空间交互的重要手段。POSIX 定义了多个用于信号管理的函数,为我们提供了丰富的信号处理能力。
1. 获取待处理信号集
POSIX 定义了 sigpending() 函数来检索待处理信号集:
#include <signal.h>
int sigpending (sigset_t *set);
调用成功时, sigpending() 会将待处理信号集存储在 set 中,并返回 0。若失败,则返回 -1,并将 errno 设置为 EFAULT ,表示 set 是无效指针。
2. 等待信号集
sigsuspend() 函数允许进程临时更改其信号掩码,然后等待信号被触发,该信号要么终止进程,要么由进程处理:
#include <signal.h>
int sigsuspend (const sigset_t *set);
如果信号终止了进程, sigsuspend() 不会返回。如果信号被触发并处理, sigsuspend() 在信号处
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



