我读过这个主题: Relationship slow system call with signal
对我来说一切都不清楚。特别是我不明白这部分答案,因为我没有看到包含源代码的问题。 请解释一下。 提前谢谢。
无论如何,回到问题。如果你想知道为什么读不 失败的EINTR答案是SA_RESTART。在大多数Unix系统上都有一些 系统调用会在发出信号时自动重启。
答案 0 :(得分:4)
OP期望read
调用返回错误代码,因为它被信号中断。在read
系统调用的情况下,OS会在发出信号时自动重新启动此系统调用,因此不会返回错误。