C語言中sync()

2puT發表於2016-07-09
sync是C語言的一個庫函式。呼叫sync可以將系統緩衝區(記憶體中)的資料寫入到檔案系統(磁碟)中。
sync的宣告為:

int sync(void);
位於標頭檔案unistd.h。
當同步成功返回0,否則返回-1。
功能為將系統緩衝區的內容寫回磁碟,以確保資料同步。
在作業系統中,除非設定了自動同步,否則為了減少磁碟的寫入量,延長磁碟壽命,寫入檔案時並不是即時寫入到磁碟中,而是先寫入記憶體,這段記憶體區域被稱為系統緩衝區。在系統緩衝區資料累計到一定數量後(具體數量因系統實際設定而定),會有系統程式一次性寫入所有緩衝資料。這樣,如果意外斷電,那麼系統緩衝區內資料就會因此丟失。於是在寫入一些重要資料時,都會在寫入結束後進行一次sync()的呼叫,保證資料已經被寫入磁碟,降低資料丟失或損壞的可能性。

相關文章