看板 Programming 關於我們 聯絡資訊
※ 引述《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