gpt4 book ai didi

c - 如何刷新用 stdio 函数编写的输出?

转载 作者:太空宇宙 更新时间:2023-11-04 00:31:09 24 4
gpt4 key购买 nike

我有一个父进程和一个子进程(子进程是使用 fork 创建的)在父进程中的某些地方定义了这段代码:

FILE* pfile = fopen("log.txt","w");

while (1) {
serve child requests
fprintf (pfile,"some data\n");
}

fclose (pfile);

问题是代码的最后一行永远不会被执行,因为无限 while 循环不会终止(这是程序应该如何操作)..所以文件永远不会关闭,写入的数据也不会连续保存到文件。

我该如何解决这个问题?

非常感谢任何帮助,谢谢

最佳答案

缓冲区满时保存数据。同时,您还可以使用 fflush() 强制提交文件-- 当应用程序或 while 循环终止时,文件本身将物理关闭。

FILE* pfile = fopen("log.txt","w");

while (1)
{
serve child requests
fprintf (pfile,"some data\n");
fflush(pfile);
}

fclose (pfile);

关于c - 如何刷新用 stdio 函数编写的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16202457/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com