看板Programming
标 题Re: [问题] 如何强迫 printf 写回资料
发信站SayYA 资讯站 (Fri Mar 2 21:56:04 2007)
转信站ptt!ctu-reader!news.nctu!SayYa
※ 引述《[email protected] (NII)》之铭言:
> 一个简单的测试程式,我将 stdout 转向到档案 log,程式执行後,会停在
> loop 里,按下 ctrl+z 或 ctrl+c 强迫程式结束。
> 检查 log 档, ls 的结果都正确写入,可是字串HELLO却没有正确写入,我已经呼叫
> fsync() 强迫将 buffer 资料写回了,为甚麽还是没有?
> 是不是有甚麽地方我没有注意到呢,谢谢罗
fsync 是叫 kernel 把 buffer 中的资料写出
但除了 kernel 对 IO 有 buffer 以外
standard library 也会做 buffering
所以你应该呼叫 standard library 的 fflush 来清 buffer
--
※ Origin: SayYA 资讯站 <bbs.sayya.org>
◆ From: arisa.csie.org