gpt4 book ai didi

unix - SIGPIPE 的原因

转载 作者:行者123 更新时间:2023-12-01 00:04:46 28 4
gpt4 key购买 nike

我有一个在 Linux 上运行的应用程序,捕获信号并将它们报告给系统日志。

此应用程序频繁报告 SIGPIPE 事件,没有明显原因

该应用程序作为守护进程在后台运行。信号发生在空闲时间,没有明显的网络/套接字连接。应用程序经常读取和写入磁盘和 DVB 卡(通过内核 DVB 驱动程序)。

我想找出 SIGPIPE 的原因。有什么方法可以追踪信号源吗?

编辑:
我已将此添加到代码中:

 stdin  = freopen("/dev/null", "r", stdin);
stdout = freopen("/tmp/vdr_stdout", "w", stdout);
stderr = freopen("/tmp/vdr_stderr", "w", stderr);

仍然得到SIGPIPE。

最佳答案

在符合 POSIX 的平台上,SIGPIPE 是当进程尝试写入管道而没有进程连接到另一端时发送到进程的信号。

由于您指的是 daemon上下文,也许 STD* 已关闭并尝试读取/写入这些内容.... 调试/进度报告 printf也许?

关于unix - SIGPIPE 的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1982539/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com