Re: [問題] 如何強迫 printf 寫回資料

看板Programming作者時間18年前 (2007/03/03 02:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
※ 引述《N2I.bbs@ptt.cc (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
文章代碼(AID): #15w6PX00 (Programming)
文章代碼(AID): #15w6PX00 (Programming)