Re: [問題] 如何強迫 printf 寫回資料
※ 引述《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
討論串 (同標題文章)
完整討論串 (本文為第 3 之 3 篇):
Programming 近期熱門文章
PTT數位生活區 即時熱門文章