900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 中断系统调用

中断系统调用

时间:2021-04-02 02:09:52

相关推荐

中断系统调用

中断系统调用

系统调用可分为两类:慢速系统调用和其他系统调用。

慢速系统调用:可能会使进程永远阻塞的一类。如果在阻塞期间收到一个信号,该系统调用就被中断,不再继续执行(早期);也可以设定系统调用是否重启。如,read、write、pause、wait...其他系统调用:getpid、getppid、fork...

结合pause,回顾慢速系统调用:

慢速系统调用被中断的相关行为,实际上就是pause的行为: 如,read

① 想中断pause,信号不能被屏蔽。

② 信号的处理方式必须是捕捉 (默认、忽略都不可以)

③ 中断后返回-1, 设置errno为EINTR(表“被信号中断”)

可修改sa_flags参数来设置被信号中断后系统调用是否重启。SA_INTERRURT不重启。 SA_RESTART重启。

扩展了解:

sa_flags还有很多可选参数,适用于不同情况。如:捕捉到信号后,在执行捕捉函数期间,不希望自动阻塞该信号,可将sa_flags设置为SA_NODEFER,除非sa_mask中包含该信号。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。