2

我正在通过 ofstream::write() 编写一个大的二进制输出缓冲区。由于我知道输出文件的大小,但有时必须以块的形式写入,我认为最好先调用 fallocate()(或 posix_fallocate())在磁盘上预分配缓冲区。但是,这些确实需要一个文件描述符,而 ofstream 没有为我提供。

是否有用于调用 fallocate() 的 ofstream 接口,或者可能获取底层文件描述符以便我自己调用它?(或者不值得费心?)

4

1 回答 1

0

由于您要写入块使用 fwrite 还看到http://www.cplusplus.com/reference/cstdio/setvbuf/来控制缓冲区大小以优化您可以有缓冲区大小 = N * 块大小

于 2013-06-19T13:05:33.450 回答