慢速系统调用被中断

中断系统调用

  系统调用可以分为两类,慢速系统调用和其他系统调用。
   慢速系统调用:可能会使进程用于阻塞的一些系统函数,如:read、write、pause、wait....。如果在阻塞期间收到了并不是想要的信号,该系统调用就被中断,不再继续执行,这不是我们想要的,当处理完了信号,应该返回原来的地方继续阻塞,等待需要的数据。为避免此类事件的发生在设置信号处理函数的时候可以将函数sigaction()的第二个传入结构体 const struct sigaction *act的sa_flags设置为SA_RESTART,系统将重启某些被系统中断的系统调用。
   其他系统调用:不会造成阻塞的系统函数。

posted @ 2021-01-15 00:14  ding-ding-light  阅读(170)  评论(0编辑  收藏  举报