msync(2) FreeBSD 一般コマンドマニュアル

msync

前のページ 上に戻る 次のページ

msync




書式

     #include <sys/types.h>
     #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() は次の場合に失敗します。

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

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

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

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


関連項目

     madvise(2), mincore(2), mprotect(2), munmap(2)


歴史

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

FreeBSD 4.4                      June 21, 1994                     FreeBSD 4.4

ABELNET VPSサービス