c++ - 获得更好的 iostream 错误消息

标签 c++ boost iostream boost-filesystem

我实现了一个可以提取(并通过 fuse 安装)某种存档格式的小程序。我使用 boost::filesystem::ifstream,但出现错误时(例如,用户想要提取的文件不存在),我收到非常难以描述的错误消息。我想知道有没有办法为 C++ 中的 IO 相关问题获取更好的错误消息?

在相关说明中,我想知道我是应该使用 C 的 FILE* 还是在 fuse 文件系统的情况下只使用普通文件描述符?因为 strerror(errno) 比 iostream 给我的要好得多。

最佳答案

我们找不到比使用 boost::iostreams 和实现我们自己的基于文件的接收器和源更好的方法了。

如果需要,可以在此处获取源代码(Apache 许可):

http://sourceforge.net/projects/cgatools/files/1.3.0/cgatools-1.3.0.9-source.tar.gz/download

相关文件是:

cgatools/util/Streams.[ch]pp

关于c++ - 获得更好的 iostream 错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6065532/

相关文章:

c++ - C++ 中的 protobuf 与 google::protobuf::Message 的动态绑定(bind)

python - 如何在没有 python 的情况下(交叉)编译 boost?

c++ - 为什么我们要在读取输入后调用 cin.clear() 和 cin.ignore()?

C++/Qt - 无法从 qrc 文件打开 .txt

C++:如何运行系统命令 N 次(异步)并获得 N 次执行时间?

c++ - 为什么 ostream::operator<< 是 char 参数的全局函数?

c++ - 定义分钟单位

java - 使用 boost::posix_time::ptime 序列化 XML 表示创建 Java 对象

c++ - 如何实现运算符>>(std::istream&, std::array<char, N>&)?

c++ - 如何从 C++ std::istream 中读取固定数量的字节