日本-日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫  お問い合わせ


OpenVMS マニュアル


 

OpenVMS ドキュメント
ライブラリ

タイトル
目次
まえがき
リファレンス・セクション
   ≫ライブラリ関数一覧
索引
PDF
OpenVMS ホーム

HP OpenVMS
HP C ランタイム・ライブラリ・リファレンス・マニュアル (下巻)


目次 索引




マップされたファイルを同期化します。

形式

#include <mman.h>

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


引数



addr

同期化するリージョンのアドレス。

len

同期化するリージョンのバイト長。

flags

<mman.h>ヘッダ・ファイルに定義されている以下のシンボリック定数のうちの 1 つ。

MS_SYNC 同期キャッシュのフラッシュ
MS_ASYNC 非同期キャッシュのフラッシュ
MS_INVALIDATE キャッシングされたページの無効化


説明

msync関数は,マップされたファイル・リージョンのキャッシング操作を制御します。 msyncを使用すると,以下の操作を行うことができます。

  • リージョン内の変更されたページが,ファイルの下位のストレージ・デバイスに転送されるようにする。

  • ファイル・システム操作の観点での変更点の可視性を制御する。

addr および len 引数は,同期化するリージョンを指定します。 len 引数は, sysconf(_SC_PAGE_SIZE)から返されるページ・サイズの倍数でなくてはなりません。そうでなければ,リージョンの長さは次のページ・サイズの倍数に切り上げられます。

flags 引数の設定は,以下の効果を持ちます。

flags 引数 msync 関数の動作
MS_SYNC システムがすべての I/O 操作を完了するまで返らない。
MS_ASYNC システムがすべての I/O 操作のスケジューリングを行った後に返る。
MS_INVALIDATE ページのすべてのキャッシングされたコピーを無効化する。オペレーティング・システムは,次にアプリケーションがページを参照したときに,ページの新しいコピーをファイル・システムから取得しなくてはならない。

各 flags 引数を設定して, msync関数の呼び出しに成功した後の状況は,以下のようになります。

  • MS_SYNC-- MS_SYNC - マップされたリージョンのそれまでのすべての変更が,プロセスから read引数を使って見えるようになる。それ以前の, write関数を使って行われたファイルの変更は失われる。

  • MS_INVALIDATE-- write関数を使って行われた,ファイルに対する以前のすべての変更が,マップされたリージョンから見えるようになる。それ以前のマップされたリージョンに対する直接の変更は失われる。

read, write,および sysconfも参照してください。


戻り値

0 成功を示します。
-1    エラーを示します。 errno は以下のいずれかの値に設定されます。

  • EIO---ファイル・システムの読み書きの際に I/O エラーが発生した。

  • ENOMEM---[ addr, addr + len] によって指定された範囲は,プロセスのアドレス空間内では無効である。または,この範囲は 1 つまたは複数のアンマップされたページを指定している。

  • EINVAL--- addr 引数は, sysconf(_SC_PAGE_SIZE) から返されるページ・サイズの倍数でない。

  • EFAULT---範囲 [ addr, addr + len] は無効なアドレスを含んでいる。


目次 索引

© 2012 Hewlett-Packard Development Company, L.P.