阻止'connect'系统调用被中断

时间:2013-03-16 04:51:13

标签: sockets unix

我正在阅读W. Richard Stevens的Unix网络编程。 作者说,如果阻塞连接呼叫被中断,我可以使用'select'作为非阻塞连接的选择。

我很困惑。如果我应该调用非阻塞连接,然后在新的socktfd上选择,或者只是选择传递给前一个阻塞连接调用的旧socketfd?

我在帖子中看到,如果使用SA_RESTART标志传递信号操作,则说'connect'可以重启。如果是这样,我可以完全忽略阻塞连接中断的情况吗?

1 个答案:

答案 0 :(得分:0)

如果您正在使用阻止呼叫,则必须检查错误代码并根据错误代码重试,如果发生中断,这将是EINTR。否则使用由于中断而不返回的选择。仅在超时,错误或读写信号的情况下选择返回。