套接字上的write()调用是否可能失败但poll()没有 检测到任何错误?是否有任何类别的错误可能导致写入失败,但poll()系统调用不会将其视为错误?
我有一个调度程序线程,它一直监视套接字并负责 用于检测和处理套接字错误。 我有一个工作线程,当调度程序线程通知时,它会在套接字上执行实际的读写操作。 工作线程的write()调用失败,但调度程序线程的poll()系统调用从不报告错误。怎么会发生这种情况!
答案 0 :(得分:3)
如果write()
失败,则返回-1并设置errno
。 这是您收到错误的唯一指示。如果您需要在其他地方发送该错误,则需要自己执行此操作。
poll()
将分别检测可能导致此错误的某些异常情况,例如关闭的TCP连接。这与"检测"不同失败的write()
- poll()
没有,也无法检测到这些错误。