linux - 能否将信号从自身进程推送到自身进程,然后作为 EPOLL 上的事件处理?

标签 linux epoll sigqueue

我必须设计一个实时系统来处理从 posix mqueue(专有实现)上的多个进程接收到的数据。主要要求是不改变整个系统主循环延迟,而是处理事件。我不想从我接收数据的源进程创建事件,而是创建从自进程到自进程的信号,触发数据被接收,数据将在 EPOLL 处理。

  • 那么,做这样的事情安全吗?
  • 我尝试了一个伪代码并得到了这个结果:“sigqueue: (errno: 11) 资源暂时不可用”可能是什么 这个问题?

提前致谢。

问候, 塔努吉·辛哈

最佳答案

是的,你可以做到这一点。一种简单的方法是创建一个管道 ( https://linux.die.net/man/2/pipe )。您可以在主循环中读取它并从其他地方写入它。

关于linux - 能否将信号从自身进程推送到自身进程,然后作为 EPOLL 上的事件处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44112200/

相关文章:

c - siginfo 中的数据可信吗?

c++ - 在CentOS中编译C遇到错误: undefined reference to

linux - epoll:我必须使用多线程吗

linux - 没有 epoll_waiting 时是否正在监视 epoll 事件

C:数据转发服务器使用epoll ET填充发送缓冲区

c - 如何在 c 程序(在 linux 上)中接收使用 sigqueue 发送的信号?

linux - 如何使用 bash 脚本修改多个文件

linux - 来自命令行的带有奇数总和的 Shell 脚本

linux - 如果语句没有正确识别该 repo 文件存在