我们有一个小型的守护进程应用程序,使用C语言编写,适用于各种UNIX平台(此问题发生在SunOS 5.10上),基本上只是打开串口,然后通过该端口监听信息。
在这个特定的实例中,守护进程似乎会读取一次传输(例如文件大小的数据)通过串口发送过来,然后接收到SIGINT。每次都会发生这种情况。其他客户也使用类似的设置,但不会收到SIGINT信号。很明显,用户没有按下Ctrl-C键。我们已经安装了相对简单的信号处理程序,所以我们确切地知道这就是发生的事情。
还有什么可能导致这种情况?在Google和这里的问题中寻找,我找不到其他可能导致SIGINT信号的解释。我还查看了代码,并没有调用raise()函数,只有一次调用kill(pid, 0),但这也不会发送SIGINT信号。
任何想法或见解都将不胜感激。
在这个特定的实例中,守护进程似乎会读取一次传输(例如文件大小的数据)通过串口发送过来,然后接收到SIGINT。每次都会发生这种情况。其他客户也使用类似的设置,但不会收到SIGINT信号。很明显,用户没有按下Ctrl-C键。我们已经安装了相对简单的信号处理程序,所以我们确切地知道这就是发生的事情。
还有什么可能导致这种情况?在Google和这里的问题中寻找,我找不到其他可能导致SIGINT信号的解释。我还查看了代码,并没有调用raise()函数,只有一次调用kill(pid, 0),但这也不会发送SIGINT信号。
任何想法或见解都将不胜感激。