c - 发送信号和 pselect?

标签 c linux sockets signals

逻辑

while()
{

  block signal;

  pselect();

  unblock signal;

}

当信号被阻塞时,我可以存储发送信号的进程 ID 吗?以便我在 pselect 完成工作并且信号畅通后处理它们?

如果有更好的方法实现这一点,请有人指导我。

最佳答案

被阻塞的信号在被解除阻塞后被排队并传递。

如果标准信号(不是实时信号)在被阻塞时被传送到进程,每个标准信号只有一个实例排队

详情请见man 7 signal .


如果已使用 sigaction() 设置了信号处理程序,则可以导出发送信号的进程 ID将传入的 struct sigactionsa_flags 成员设置为 SA_SIGINFO

详情请see man sigaction .

关于c - 发送信号和 pselect?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21136693/

相关文章:

c - 如何编写构建标记树等的 YACC 语法?

来自 root 用户的 PHP,mkdir 权限被拒绝

linux - 使用 grep 列出目录中的条目

c - FILE* 和文件描述符读/写性能

javascript - 未知的 node.js 和 websockets 服务器停止。谁修改我的代码?

java服务器发送打印流到端口80或443

c - 为什么 BSTR 长度前缀在 64 位平台上是 4 个字节?

c - 用于 C 编译的特定 GCC 程序和库

c - 在 C 中查找最新的文件名

linux - 如何检查目录 "d"是否存在但当前用户无权读取