fsync

fsync函式同步記憶體中所有已修改的檔案數據到儲存設備。

頭檔案

#include <unistd.h>

函式原型

int fsync(int fd);

說明

參數fd是該進程打開來的檔案描述符。 函式成功執行時,返回0。失敗返回-1,errno被設為以下的某個值

EBADF: 檔案描述詞無效

EIO : 讀寫的過程中發生錯誤

EROFS, EINVAL:檔案所在的檔案系統不支持同步

調用 fsync 可以保證檔案的修改時間也被更新。fsync 系統調用可以使您精確的強制每次寫入都被更新到磁碟中。您也可以使用同步(synchronous)I/O 操作打開一個檔案,這將引起所有寫數據都立刻被提交到磁碟中。通過在 open 中指定 O_SYNC 標誌啟用同步I/O。

範例

#include <fcntl.h>

#include <string.h>

#include <sys/stat.h>

#include <sys/types.h>

#include <unistd.h>

const char* journal_filename = “journal.log”;

void write_journal_entry (char* entry)

{

int fd = open (journal_filename, O_WRONLY | O_CREAT | O_APPEND, 0660);

write (fd, entry, strlen (entry));

write (fd, “\n”, 1);

fsync (fd);

close (fd);

}

相關詞條

相關搜尋

熱門詞條

聯絡我們