我有一个写入FILE*cgiOut的程序,在写入流后,我需要派生并运行后台进程.麻烦的是,在fork之后,FILE*流似乎有时会刷新并且我得到重复的输出(在fork之后,所有打开的文件都被关闭,我猜这会导致刷新缓冲区).我怎么能避免这个?我不想在主进程中关闭文件,因为它在库中打开,我认为它是一个套接字或管道.
我不太清楚我理解你的问题,但如果你想确定你的cgiOut
缓冲区是空的,fork()
你可以在你之前使用fflush()
流fork()
.这应该强制刷新缓冲区.
它可能适合使用无缓冲的流,通过改变缓冲设置setvbuf()
和朋友.这样你就不会(读:不应该)有任何缓冲问题,但它可能不是你想要的.