来自 Linux 编程接口
信号在以下时间之一传送:
- 当进程在之前超时后重新调度时(即,在时间片开始时);或者
- 系统调用完成时(信号的传递可能会导致阻塞系统调用过早完成)。
如何判断信号是否可以中断系统调用的执行?
哪些系统调用可以被哪些信号中断,即提前终止?
哪些系统调用不能被哪些信号中断?
谢谢。
答案1
我对 mosvy 在评论中所说的话的猜测是
可以被信号中断的系统调用是 signal(7) 联机帮助页的“系统调用的中断和...”部分中列出的那些系统调用,无论它们是否可以重新启动,并且
不能被信号中断的系统调用是那些没有列出的系统调用。