这是我的程序:
#include <fstream>
int main() {
std::ofstream fout("data.dat", std::ios::binary);
for (int isam=0; isam<500; isam++) fout.write((char*) &isam, 4);
exit(1);
}
Run Code Online (Sandbox Code Playgroud)
当我在 MacBook 上运行此程序时,文件 data.dat 的长度为 1 字节(在 AWS 上为 0 字节),而不是 2000。如果我增加 500,我最终会得到更多字节,但永远不会达到预期的数量。但是,当我注释掉 exit() 时,无论字节数如何,一切都会按预期工作。这就好像 exit() 停止了前一行代码的缓冲输出。这不是一个bug吗?谢谢