fprintffunction不起作用但它返回正数
我正在以下列方式使用fprintf
。 一切似乎都没问题,但fprintf
根本不打印到我的文件中!
fprintf(pFile, "%s\n", "print");
奇怪的是fprintf
返回OK
。 它在上面的代码中返回6
,但不打印到文件!
文件已成功创建但为空。
将它更改为printf
正在打印,也可以。
fprintf
和其他stdio输出函数被缓冲,这意味着输出首先存储在内存中,直到稍后才实际打印。 当使用标准输出打印到屏幕时,每个新行都会刷新缓冲区,因此使用printf
可以立即看到输出,但是当打印到文件时,在写入(例如)4096字节之前,缓冲区将不会被刷新。 你可以添加fflush(pFile);
刷新缓冲区,如果由于某种原因需要输出快速出现在文件中。
调用fclose
时也会刷新缓冲区,或者通过正确退出程序隐式关闭文件,但如果程序在不关闭文件的情况下继续运行,或者如果崩溃,则需要fflush
查看文件的输出。