0
我已经打开了一个文件,用于将一些数据写入文件,但是它会一直保存缓冲区,直到程序结束才会写入任何内容。我如何跳过缓冲过程并直接写入文件。C语言:无缓冲写入文件
我的代码:
fprintf (fp, "# Step: %d %f\n", ntot, eDiff);
for(i=0; i<nType; i++)
fprintf (fp, "%s %f %f\n",param[i].cTypes, param[i].eps, param[i].sigma);
fprintf(fp, "# ============\n");
这可能是因为在某些怪异的方式缓冲的OS,如果有任何缓冲可言。有一些可能有所帮助 - > http://stackoverflow.com/questions/1716296/why-does-printf-not-flush-after-the-call-unless-a-newline-is-in-the-format-条形码 – Etherealone
您错过了fopen,fsync和fclose调用。你甚至缺少main()。你如何期待我们帮助你? – CAFxX
使用'setvbuf'缓冲控制。 – BLUEPIXY