版權所有 © 2014 tutorialspoint
fdatasync - 將檔案的記憶體中資料與磁碟上的資料同步
#include <unistd.h> int fdatasync(int fd);
int fdatasync(int fd);
fdatasync() 將檔案的所有資料緩衝區重新整理到磁碟(在系統呼叫返回之前)。它類似於 fsync(),但不需要更新元資料,例如訪問時間。
訪問資料庫或日誌檔案的應用程式通常會寫入一個很小的資料片段(例如,日誌檔案中的一個行),然後立即呼叫 fsync() 以確保寫入的資料已物理儲存在硬碟上。不幸的是,fsync() 將始終啟動兩個寫操作:一個用於新寫入的資料,另一個用於更新 inode 中儲存的修改時間。
如果修改時間不是事務概念的一部分,則可以使用 fdatasync() 來避免不必要的 inode 磁碟寫操作。
成功時,返回零。出錯時,返回 -1,並且 errno 被相應地設定。
目前(Linux 2.2)fdatasync() 等效於 fsync()。
在提供 fdatasync() 的 POSIX 系統上,<unistd.h> 中定義的 _POSIX_SYNCHRONIZED_IO 的值為大於 0 的值。(另請參閱 sysconf(3)。)
POSIX.1-2001。
fsync (2)
sync_file_range (2)
廣告