Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在使用fprintf以下方式。一切似乎都很好,但fprintf根本没有打印到我的文件中!
fprintf
fprintf(pFile, "%s\n", "print");
奇怪的是fprintf返回OK。它6在上面的代码中返回,但不打印到文件!
OK
6
该文件已成功创建,但为空。
将其更改为printf正在打印也是OK如此。
printf
fprintf并且其他stdio输出函数是缓冲的,这意味着输出首先存储在内存中,直到以后才真正打印出来。当使用标准输出打印到屏幕时,每一新行都会刷新缓冲区,因此printf您会立即看到输出,但是当打印到文件时,缓冲区不会被刷新,直到您写入(例如)4096 字节。fflush(pFile);如果由于某种原因需要输出快速出现在文件中,您可以添加以刷新缓冲区。
fflush(pFile);
调用时也会刷新缓冲区fclose,或者通过正确退出程序隐式关闭文件,但如果程序在没有关闭文件的情况下继续运行,或者如果它崩溃,您将需要fflush查看文件上的输出。
fclose
fflush