gpt4 book ai didi

c - 收到神秘信号的应用程序

转载 作者:行者123 更新时间:2023-12-02 00:44:56 24 4
gpt4 key购买 nike

我们有一个用 C 语言为几个不同的 UNIX 平台编写的小型守护程序应用程序(这个问题发生在 SunOS 5.10 中),它基本上只是打开一个串行端口,然后监听通过所述端口传入的信息。

在此特定实例中,守护程序似乎读取通过串行端口发送的单个传输(如文件的数据值(value)),然后它接收到 SIGINT。每次都会发生这种情况。其他客户在没有收到 SIGINT 的情况下使用此设置非常相似。很明显,用户没有按 Ctrl-C。我们有一个相对简单的信号处理程序,所以我们肯定知道这就是正在发生的事情。

还有什么可能导致这种情况?谷歌搜索并浏览这里的问题,我找不到关于可能导致 SIGINT 的其他事情的太多解释。我还查看了代码,发现没有对 raise() 的调用,只有一次对 kill(pid, 0) 的调用,无论如何都不会发送 SIGINT。

任何想法或见解都将不胜感激。

最佳答案

如果您不希望串行端口成为进程的控制终端,请使用open 打开它。标记 O_NOCTTY。如果是控制端,串口传来的数据可能会被解释为中断或其他特殊字符。

关于c - 收到神秘信号的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1088626/

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