【发布时间】:2013-10-20 20:24:27
【问题描述】:
如何将数据实时写入文件?
我的意思是:一个程序使用fprintf(...) 命令获取数据并将它们放入一个文件(我们可以说out.txt),然后另一个程序从文件中读取数据(out.txt ) 并详细阐述它们。
我有这样的流程:
fp=fopen("out.txt","w+");
while(...) {
...
fprintf (fp,"\n %s", data);
}
fclose(fp);
通过该流程,我在关闭文件后将数据放入文件 (out.txt)。
有没有办法将数据实时写入文件?
【问题讨论】:
-
在每个 fprintf 之后调用 fflush(fp)。
-
您需要命名管道、消息队列或其他一些 IPC 机制。您确实不希望依赖在进程中使用“fprintf()”写入的打开文件与另一个进程中的“fread()”同步。
-
或许可以考虑使用 FIFO。
man fifo如果您的平台支持。