我知道这EINTR
是所谓的可中断系统调用可能返回的错误。我的问题是导致EINTR的信号从何而来?
我在Python中使用时经常遇到这个问题fnctl
。我没有发出任何中断命令,例如ctrl
+ c
。
答案1
导致系统调用返回 EINTR 的信号来自信号通常来自的地方。您描述的行为可能是由信号处理程序捕获的任何信号引起的。
我对你的问题的解释是,你有一个具体的情况,你的阻塞系统调用被你无法找到原因的信号中断。作为线索,您写道,这些神秘信号通常在您使用 fcntl 系统调用时发生。 fcntl 系统调用可用于通知进程文件系统中的更改等事件。这些事件被报告为信号。如果不了解您的代码的作用,我无法给出更具体的答案。检查您使用 fcntl 的目的。