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);
}