MSYNC(2)

名称
msync - マップされた領域を同期化する

ライブラリ
libc

書式
<sys/types.h> <sys/mman.h> int msync(void *addr, size_t len, int flags)

解説
msync() システムコールは、修正されたページをファイルシステムに書き込んで ファイル修正時刻を更新します。 len が 0 の場合、 addr を含むリージョン内のすべての修正済みページがフラッシュされます。 len が 0 でない場合、 addr から len-1 の範囲を含むページだけが調べられます。 flags 引数は次のように指定できます。

    MS_ASYNC	ただちに戻ります
    MS_SYNC		同期書込みを実行します
    MS_INVALIDATE	キャッシュされたデータをすべて無効にします

戻り値

エラー
msync() は次の場合に失敗します。

[EINVAL]
    addr はハードウェアページサイズの倍数ではありません。

[EINVAL]
    len が大きすぎるか、または負です。

[EINVAL]
    flags に MS_ASYNC と MS_INVALIDATE の両方が指定されました。 これらのフラグは同時に指定することはできません。

[EIO]
    ファイルシステムに書込む間に入出力エラーが発生しました。

関連項目
madvise(2), mincore(2), mprotect(2), munmap(2)

歴史
msync() 関数は 4.4BSD ではじめて登場しました。