日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
目次 | 索引 |
msync |
マップされたファイルを同期化します。
#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] は無効なアドレスを含んでいる。
目次 | 索引 |
|