我有一个写入FILE * cgiOut的程序,并且在写入流之后,我需要fork并运行后台进程。麻烦的是,在fork之后,FILE *流有时会被刷新,并且我得到了重复的输出(在fork之后,所有打开的文件都被关闭了,我猜想会导致缓冲区被刷新)。我怎样才能避免这种情况?我不想在主进程中关闭该文件,因为它在库中打开,并且它是我认为的套接字或管道。如何在程序分叉时清除输出缓冲区?
1
A
回答
5
不太清楚我明白你的问题,但如果你想确保你的cgiOut
缓冲区都在你面前空的,你可以只是你fork()
之前的流使用fork()
fflush()
。这应该强制缓冲区被刷新。
它可能适合使用非缓冲流,通过更改缓冲设置通过setvbuf()
和朋友。这样你不会(读:不应该)有任何缓冲问题,但它可能不是你想要的。
0
相关问题
- 1. 如何清除缓冲区?
- 2. 清除输入缓冲区:Visual Basic
- 3. C++清除输入缓冲区
- 4. 如何清除protobuf的缓冲区?
- 5. 如何清除(char *)中的缓冲区?
- 6. 如何清除`TargetDatatLine`读取缓冲区
- 7. 如何清除串行缓冲区?
- 8. 如何清除cin的缓冲区?
- 9. 如何清除流串的缓冲区?
- 10. 如何清除缓冲区从Android
- 11. 清除bash“源缓冲区”
- 12. 清除stdin缓冲区?
- 13. 输出缓冲区
- 14. 如何用缓冲区删除输入流的缓冲区?
- 15. PHP exec,每次执行调用后清除输出缓冲区?
- 16. 如何清除/清除VxWorks中的消息队列缓冲区?
- 17. 在OpenGL中清除颜色缓冲区
- 18. 使用扫描仪时清除输入缓冲区
- 19. PHP Scoped输出缓冲区,如何?
- 20. 如何修改输出缓冲区?
- 21. 如何清除火花输出中的紧凑缓冲
- 22. 包含输出缓冲区?
- 23. javascript输出缓冲区
- 24. 退出时删除缓冲区
- 25. 如何在缓冲区控制台输出中输出?
- 26. 如何清除应用程序输出
- 27. C缓冲区清除后继续
- 28. python IRC缓冲区没有清除
- 29. ALSA snd_pcm_drop()未清除完整缓冲区
- 30. libGDX OpenGL清除缓冲区位