相关疑难解决方法(0)

posix关闭呼叫失败怎么办?

在我的系统(Ubuntu Linux,glibc)上,close调用的手册页指定了它可以返回的几个错误返回值.它还说

不检查close()的返回值是一个常见但严重的编程错误.

同时

请注意,返回值仅应用于诊断.特别是在EINTR之后不应该重试close(),因为这可能导致另一个线程的重用描述符被关闭.

所以我不允许忽略返回值,也不允许重试调用.

鉴于此,我该如何处理close()呼叫失败?

如果在我向文件写入内容时发生错误,我可能应该尝试在其他地方写入信息以避免数据丢失.

如果我只是在阅读文件,我可以记录失败并继续假装没有发生的程序吗?是否有任何警告,文件描述符泄漏或其他什么?

c unix linux error-handling posix

18
推荐指数
1
解决办法
1万
查看次数

标签 统计

c ×1

error-handling ×1

linux ×1

posix ×1

unix ×1