我用 C++ 实现了一个小的只读 FUSE 文件系统,它从某个多文件存档中读取数据。我使用 iostreams(实际上boost::filesystem::ifstream
)来读取文件。现在我想知道这是否是一个明智的决定。
首先,iostreams 的错误消息很可怕(请参阅我的另一个问题),我不能简单地返回errno
我的文件操作引起的。但其次我想知道在实现 FUSE 文件系统时使用无缓冲 IO 是否更好(不是用于读取存档索引,而是在读取文件时 - 它是一个未压缩的存档,其中文件永远不会被拆分为多个存档文件)。因为读取文件的应用程序会根据需要进行缓冲。这种缓冲只是不必要的开销吗?
(提升)iostream 的速度有多快?好吧,我可以毫无问题地从已安装的存档中播放 WAV 文件,但我仍然想知道 iostreams 是否会在我真的不需要时增加不必要的开销(它们提供的唯一优点是它们超出范围时会自动关闭文件) .