相关疑难解决方法(0)

`EINTR`:它背后有什么理由吗?

作为背景的闲聊

EINTR是所谓的可中断系统调用可能返回的错误。如果在系统调用运行时发生信号,则不会忽略该信号,并且为它定义了SA_RESTART未设置的信号处理程序并且该处理程序处理该信号,则系统调用将返回EINTR错误代码。

作为旁注,我经常ncurses在 Python 中使用这个错误。

问题

POSIX 标准指定的这种行为背后是否有基本原理?可以理解可能无法恢复(取决于内核设计),但是,不在内核级别自动重新启动它的理由是什么?这是出于传统原因还是技术原因?如果这是出于技术原因,这些原因现在仍然有效吗?如果这是出于遗留原因,那么历史是什么?

process signals system-calls posix

10
推荐指数
2
解决办法
7313
查看次数

标签 统计

posix ×1

process ×1

signals ×1

system-calls ×1