MSYNC(2)

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

ライブラリ
libc

書式
<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() システムコールは次の場合に失敗します:

[EBUSY]
    指定された領域の一部またはすべてのページがロックされており、 MS_INVALIDATE が指定されました。

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

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

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

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

歴史
msync() システムコールは 4.4BSD ではじめて登場しました。