Unix/Linux编程:系统调用的中断与重启_siginterrupt-CSDN博客

网站介绍:考虑如下场景:为某信号创建处理器函数发起一个阻塞的系统调用,比如,从终端设备调用的read()会阻塞到有数据输入为止。当系统调用遭到阻塞的时候,之前创建了处理器函数的新传递了过来,随即引发对处理器函数的调用。信号处理器返回后又会发生什么?默认情况下,系统调用失败,并将 errno 置为 EINTR。(利用这种特性,就可以为阻塞的系统调用设置一个定时器)不过,更为常见的情况是希望遭到中断的系统调用得以继续运行。这时,可以手动重启遭到中断的系统调用:while((cnt = read(fd, _siginterrupt