原話來自此處
調用系統函數write時 有寫延遲,write負責把東西寫到緩存區上,
sync負責把緩存區上的東西排到寫隊列中(緩衝區->寫隊列),在由守護進程負責把隊列裏的東西寫到磁盤上,而sync函數在把緩存區上的東西排到寫隊列後不管寫隊列中的內容是否寫到磁盤上都立即返回。
fsync函數則是對指定文件的操作,而且必須等到寫隊列中的內容都寫到磁盤後才返回,並且更新文件inode結點裏的內容。fdatasync和fsync類似,但是這個函數只更新data塊裏的內容。(data快不是很理解)