lxg*_*xgr 16 linux system interrupt
这是一个成功发送()"原子"的后续问题?,我认为它实际上涉及系统调用,而不仅仅是发送套接字.
哪些系统调用可以中断,何时中断处理中断?我已经了解了SA_RESTART,但并不完全了解发生了什么.
如果我在没有SA_RESTART的情况下进行系统调用,是否可以通过与我的应用程序无关的任何类型的中断(例如用户输入)来中断调用,但要求操作系统中止我的呼叫并执行其他操作?或者它只是被与我的进程直接相关的信号中断(CTRL + C,套接字关闭,......)?
设置SA_RESTART时,send()或任何其他"慢"系统调用的语义是什么?它是否会一直阻塞,直到我的所有数据都被传输或套接字关闭,或者它是否能以小于send()参数中的计数的数字返回?
重启的实施在哪里?操作系统是否知道我希望在任何中断时重新启动调用,或者是否有一些信号发送到我的进程然后由库代码处理?或者我必须自己做,例如在while循环中包装调用并根据需要重试?
归档时间: |
|
查看次数: |
15640 次 |
最近记录: |