c++ - C++ 中的详细文件 IO 错误报告

标签 c++ file-io c++11

是否有任何开源文件 IO 库或 C++ 中的简单方法可以报告文件 IO 的详细信息和确切错误。举些例子;如果用户没有读取或正确的权限 - 或者磁盘已满等。

最佳答案

C 样式文件操作默认执行此操作,您只需要包含 cerrornocstring 并使用 strerror文件操作调用失败后:

hFile = fopen(fname, "r+b");
/*-- attempt to create the file if we can't open it for reading --*/
if(!hFile) {
    /*-- print out relevant error information --*/
    printf("Open File %s Failed, %s\n", fname, std::strerror(errno));
    return 1;
}
return 0;

当然,如果您使用 C 风格的文件操作。我认为 ifstream 在大多数编译器上也支持这些。

请注意,此功能在某些实现上不是线程安全的。有 strerror_r在线程安全的 Linux 上。

关于c++ - C++ 中的详细文件 IO 错误报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18971376/

相关文章:

java - 在Java中,如何根据文件的最后修改日期将 vector 中的文件排序为3个不同的 vector ?

c++ - Variadic 可变模板模板,再次

C++11:memory_order_relaxed 和 memory_order_consume 的区别

c++ - constexpr std::optional 可能的实现

perl - perl中读取大日志文件的方法及其比较

c++ - 异构列表、虚函数和成员数据

c++ - 为什么单独循环中的元素加法比组合循环中的元素加法快得多?

c++ - map 插入导致 VS 2015 中的 C2664 错误,适用于 VS 2013

c - 文件处理程序中不需要的输出(连接文件)

c++ - 如何判断文件刷新在关闭文件之前确实有效?