スポンサーリンク

MSYNC(2) FreeBSD システムコールマニュアル MSYNC(2)

名称

msync − マップされた領域を同期化する

ライブラリ

標準 C ライブラリ (libc, −lc)

書式

#include <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() は、処理が成功すると値 0 を返します。そうでない場合、値 -1 が返され、グローバル変数 errno が設定されてエラーを示します。

エラー

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 ではじめて登場しました。

FreeBSD 10.0 June 21, 1994 FreeBSD 10.0

スポンサーリンク