fdatasync() - Unix、Linux 系統呼叫 - 技術教學
Tutorials Point


  Unix 初學者指南
  Unix Shell 程式設計
  高階 Unix
  Unix 有用參考
  Unix 有用資源
  精選閱讀

版權所有 © 2014 tutorialspoint



  首頁     參考     討論論壇     關於 TP  

fdatasync() - Unix、Linux 系統呼叫


previous next AddThis Social Bookmark Button

廣告

名稱

fdatasync - 將檔案的記憶體中資料與磁碟上的資料同步

語法

#include <unistd.h> 

int fdatasync(int fd);

描述

fdatasync() 將檔案的所有資料緩衝區重新整理到磁碟(在系統呼叫返回之前)。它類似於 fsync(),但不需要更新元資料,例如訪問時間。

訪問資料庫或日誌檔案的應用程式通常會寫入一個很小的資料片段(例如,日誌檔案中的一個行),然後立即呼叫 fsync() 以確保寫入的資料已物理儲存在硬碟上。不幸的是,fsync() 將始終啟動兩個寫操作:一個用於新寫入的資料,另一個用於更新 inode 中儲存的修改時間。

如果修改時間不是事務概念的一部分,則可以使用 fdatasync() 來避免不必要的 inode 磁碟寫操作。

返回值

成功時,返回零。出錯時,返回 -1,並且 errno 被相應地設定。

錯誤

錯誤程式碼描述
EBADF fd 不是一個有效的用於寫入的檔案描述符。
EIO 同步期間發生錯誤。
EROFSEINVAL fd 繫結到不支援同步的特殊檔案。

缺陷

目前(Linux 2.2)fdatasync() 等效於 fsync()。

可用性

在提供 fdatasync() 的 POSIX 系統上,<unistd.h> 中定義的 _POSIX_SYNCHRONIZED_IO 的值為大於 0 的值。(另請參閱 sysconf(3)。)

符合標準

POSIX.1-2001。

參見



previous next Printer Friendly

廣告


  

廣告



廣告
© . All rights reserved.