我在C ++中实现了一个小型只读FUSE文件系统,它从某个多文件存档中读取数据。我使用iostreams(实际上是boost::filesystem::ifstream
)来读取文件。现在我想知道这是否是一个明智的决定。
首先,iostream的错误消息很糟糕(参见another question by me),我不能简单地返回errno
我的文件操作造成的。但第二我想知道在实现FUSE文件系统时是否更好地使用无缓冲的IO(不是为了读取存档索引而是在读取文件时 - 它是一个未压缩的存档,其中文件永远不会被拆分为多个存档文件)。因为读取文件的应用程序将在需要时缓冲。这种缓冲只是不必要的开销吗?
(增强)iostream的速度有多快?好吧,我可以毫无问题地从已安装的存档播放WAV文件,但我还是想知道iostream是否只是在我不需要的时候添加不必要的开销(他们提供的唯一优势就是当它们超出范围时会自动关闭文件)