c - 如何在不丢失信号的情况下将信号从多个 child 发送到主进程?

标签 c unix signals ipc

Full program

总结:主进程 fork 3 个子进程,向这些进程中的每一个发送信号,然后等待。反过来,当每个 child 收到信号时,它被重定向到 child() 函数,向主进程发送信号(并调用 father() 函数),然后等待。如果主进程收到 3 个信号,它会终止子进程并结束程序。

问题是主进程只收到一次信号。我怀疑其他 2 个信号在执行 father() 函数时丢失了,或者我可能只是遗漏了一些东西

有没有办法知道某些信号是否丢失?那我该如何避免这种情况呢?

最佳答案

信号不可靠,如果您需要确保接收到消息,则应避免使用。更可靠的方法是使用

  1. 管道
  2. 共享内存
  3. 套接字
  4. 文件

关于c - 如何在不丢失信号的情况下将信号从多个 child 发送到主进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20913989/

相关文章:

python - 直接从 C 调用 mpmath

c - 位打包和动态分配的问题

linux - 无法删除名为 ";"的未知文件

c++ - "Abort signal from abort(3) (SIGABRT)"。为什么只针对某些情况?

检查文件是否不是目录

c - 如何在 C 中实现 md5 或 sha1 哈希

shell - 将标准输出/错误重定向到日志文件

PHP exec() 无法正常工作

matlab - Matlab中的音频信号处理

c++ - 如何中止对 sigwaitinfo 的调用?