慢速系统调用被中断

中断系统调用

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

原文地址:https://www.cnblogs.com/ding-ding-light/p/14280139.html