c++ - fwrite 是否缓冲输出?

标签 c++

在 C++ 中,有一个 std::fwrite()它将缓冲区写入磁盘上的文件。

您能告诉我在 fwrite 实现中是否有任何缓冲区?

即如果我多次调用 fwrite()(比如 10 次),它实际上会调用 10 次不同的文件 I/O 吗?

我在 Ubuntu 10.04 环境中询问这个。

最佳答案

是的,它是缓冲的。缓冲区的大小由 BUFSIZ 定义。 (感谢@ladenedge。)十个足够大的操作将导致十个系统调用。

您还可以使用 std::setbuf 设置自己的缓冲区。和 std::setvbuf .

cstdio中的函数继承自C。C++中首选的接口(interface)是fstreamfilebuf

关于c++ - fwrite 是否缓冲输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2806104/

相关文章:

c++ - 使用设计模式时 'pointer to a function'的优势

c++ - std::complex<T> 的显式模板特化

c++ - 自动指针问题

c++ - for_each 但用于将每个元素设置为 C++ 中的值

c++ - 如何检查条目是否为数字,包括 float

c++ - 从未知派生类调用接口(interface)函数(多重继承)

C++随机cout语句导致程序在重载的 '='运算符内崩溃

c++ - static_assert 如果表达式是 constexpr

c++ - 解释 Python 扩展多线程

c++ - C++11 中 ConstExpr 对象中的可变成员