什么时候以及如何中断系统调用?

什么时候以及如何中断系统调用?,第1张

什么时候以及如何中断系统调用

系统调用可以被任何信号打断,包括SIGINT(由CTRL-C生成),SIGHUP等信号。

SA_RESTART
被设置时,一个
send()
将返回(与发送的计数),如果任何数据发送被接收到的信号之前,它会返回一个错误
EINTR
,如果一个发送超时被设置(如那些无法重新启动),否则
send()
将被重新启动。

系统调用重启是在内核的信号处理代码中实现的。系统调用

-ERESTARTSYS
在检测到未决信号(或等待被信号中断)后在内部返回,这导致信号处理代码将指令指针和相关寄存器恢复到调用前的状态,从而使syscall重复执行。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4979375.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-14
下一篇2022-11-14

发表评论

登录后才能评论

评论列表(0条)

    保存