在C中,有一个
std::fwrite()
写缓冲区到磁盘上的一个文件.
你能告诉我这个fwrite实现中有什么缓冲区吗?
即如果我多次调用fwrite()(例如10次),它是否实际调用不同时间的文件I / O?
我问Ubuntu 10.04环境.
解决方法
是的,它是缓冲的.缓冲区的大小由BUFSIZ定义. (感谢@ladenedge.)十个足够大的操作将导致十个系统调用.
您还可以使用std::setbuf
和std::setvbuf
设置自己的缓冲区.