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

hsh*_*hab 1 c

我有一个父进程和一个子进程(使用fork创建子进程)一些在父进程中定义此代码的位置:

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

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

fclose (pfile);
Run Code Online (Sandbox Code Playgroud)

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

我怎么解决这个问题 ?

任何帮助将不胜感激,谢谢

K S*_*iel 5

缓冲区已满时保存数据.在此期间,您还可以强制文件提交fflush()- 当app或while循环终止时,文件本身将物理关闭.

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

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

fclose (pfile);
Run Code Online (Sandbox Code Playgroud)