linux SA_RESTART的作用

SA_RESTART用在为某个信号设置信号处理函数时,给该信号设置的一个标记。

一般情况下 ,进程正在执行某个系统调用,那么在该系统调用返回前信号是不会被递送的。但慢速系统调用除外,如读写终端、网络、磁盘,以及wait和pause。这些系 统调用都会返回-1,errno置为EINTR当系统调用被中断时,我们可以选择使用循环再次调用,或者设置重新启动该系统调用 (SA_RESTART)。

一旦给信号设置了SA_RESTART标记,那么当执行某个阻塞系统调用时,收到该信号时,进程不会返回,而是重新执行该系统调用。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。