在我的系统(Ubuntu Linux,glibc)上,close调用的手册页指定了它可以返回的几个错误返回值.它还说
不检查close()的返回值是一个常见但严重的编程错误.
同时
请注意,返回值仅应用于诊断.特别是在EINTR之后不应该重试close(),因为这可能导致另一个线程的重用描述符被关闭.
所以我不允许忽略返回值,也不允许重试调用.
鉴于此,我该如何处理close()呼叫失败?
如果在我向文件写入内容时发生错误,我可能应该尝试在其他地方写入信息以避免数据丢失.
如果我只是在阅读文件,我可以记录失败并继续假装没有发生的程序吗?是否有任何警告,文件描述符泄漏或其他什么?