在 C++ 中,有一个 std::fwrite()
它将缓冲区写入磁盘上的文件。
您能告诉我在 fwrite 实现中是否有任何缓冲区?
即如果我多次调用 fwrite()(比如 10 次),它实际上会调用 10 次不同的文件 I/O 吗?
我在 Ubuntu 10.04 环境中询问这个。
最佳答案
是的,它是缓冲的。缓冲区的大小由 BUFSIZ
定义。 (感谢@ladenedge。)十个足够大的操作将导致十个系统调用。
您还可以使用 std::setbuf
设置自己的缓冲区。和 std::setvbuf
.
cstdio
中的函数继承自C。C++中首选的接口(interface)是fstream
和filebuf
。
关于c++ - fwrite 是否缓冲输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2806104/