0

是否有可能对套接字的 write() 调用失败但 poll() 未检测到任何错误?是否有任何类别的错误会导致写入失败,但 poll() 系统调用不会将其视为错误?

我有一个调度程序线程,它不断监视套接字并负责检测和处理套接字错误。我有一个工作线程,当调度程序线程通知时,它会在套接字上进行实际的读取和写入。工作线程的 write() 调用失败,但调度程序线程的 poll() 系统调用从不报告错误。怎么会这样!

4

1 回答 1

3

如果write()失败,则返回 -1 并设置errno. 这是您得到错误的唯一指示。如果您需要将该错误发送到其他地方,您需要自己执行此操作。

poll()将单独检测可能导致此错误的某些异常情况,例如关闭的 TCP 连接。这与“检测”失败的错误不同write()——poll()不会也不能检测到这些错误。

于 2017-05-23T00:11:46.210 回答