其他分享
首页 > 其他分享> > 为什么fprintf不直接写入文件,除非使用fflush()?

为什么fprintf不直接写入文件,除非使用fflush()?

作者:互联网

我编写了一个在文件中写入值的守护进程.我观察到的是,当我继续写文件时,文件中没有任何内容可见.另一方面,如果我使用fflush()方法,那么字符在文件中是可见的.为什么fflush()有所作为?

解决方法:

因为它是缓冲的.这意味着所有写入都存储在内存中的缓冲区中,直到刷新缓冲区为止.对于printf和朋友来说,当它有换行符,或者你明确地调用fflush时,或者当缓冲区变满时.

标签:c-3,flush,linux,file-io,buffering
来源: https://codeday.me/bug/20191003/1847481.html