在调用EPIPE
失败后,我的C ++应用程序似乎得到了write()
错误结果。传递给write()
的文件描述符用于NFS挂载磁盘上的文件。
write()
的手册页描述了EPIPE
:
fd is connected to a pipe or socket whose reading end is closed. When this
happens the writing process will also receive a SIGPIPE signal. (Thus, the write
return value is seen only if the program catches, blocks or ignores this signal.)
所以我对如何获得EPIPE
感到困惑。可能是这是一个多线程问题而且错误地为不同的线程提供了错误的错误吗?我认为errno是线程安全的,所以这似乎不太可能,但后来获得EPIPE似乎毫无意义。这是在Centos v4上。