msync

函式簡介,函式原型,頭檔案,參數,返回值,可能的錯誤,

函式簡介

刷新變化函式msync()
進程在映射空間的對共享內容的改變並不直接寫回到磁碟檔案中,往往在調用munmap()後才執行該操作。
可以通過調用msync()函式來實現磁碟檔案內容與共享記憶體區中的內容一致,即同步操作.

函式原型

int msync ( void * addr, size_t len, int flags)

頭檔案

#include<sys/mman.h>

參數

addr:檔案映射到進程空間的地址;
len:映射空間的大小;
flags:刷新的參數設定,可以取值MS_ASYNC/ MS_SYNC/ MS_INVALIDATE
其中:
取值為MS_ASYNC(異步)時,調用會立即返回,不等到更新的完成;
取值為MS_SYNC(同步)時,調用會等到更新完成之後返回;
取MS_INVALIDATE(通知使用該共享區域的進程,數據已經改變)時,在共享內容更改之後,使得檔案的其他映射失效,從而使得共享該檔案的其他進程去重新獲取最新值;

返回值

成功則返回0;失敗則返回-1;

可能的錯誤

EBUSY/ EINVAL/ ENOMEM

相關詞條

熱門詞條

聯絡我們