在C ++ ofstream上调用fallocate()

时间:2013-06-19 12:35:47

标签: c++ ofstream

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

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

1 个答案:

答案 0 :(得分:0)

因为你要用块编写,所以使用fwrite 另请参阅http://www.cplusplus.com/reference/cstdio/setvbuf/以控制缓冲区大小 优化你可以有缓冲区大小= N *块大小