msync サブルーチン
目的
メモリーを物理ストレージと同期します。
ライブラリー
標準 C ライブラリー (libc.a)。
構文
説明
msync サブルーチンは、マップ・ファイルまたは共用メモリー領域のキャッシング操作を制御します。 msync サブルーチンを使用して、領域内の変更されたページを基礎となるファイル・ストレージ・デバイスに転送します。
アプリケーションがSingle UNIX仕様バージョン2に準拠した動作を要求している場合、ファイルが変更されていれば、msyncサブルーチン呼び出しの正常終了時に、マップされたファイルの最終データ変更タイムスタンプと最終ファイル状態変更タイムスタンプが更新のためにマークされる。
パラメーター
| 項目 | 説明 |
|---|---|
| addr | 同期化する領域のアドレスを指定します。 sysconf サブルーチンが Name パラメーターに _SC_PAGE_SIZE 値を使用して戻したページ・サイズの倍数でなければなりません。 |
| len | 同期化する領域の長さをバイト単位で指定します。 len パラメーターが、 Name パラメーターの _SC_PAGE_SIZE 値を使用して sysconf サブルーチンによって戻されるページ・サイズの倍数でない場合、 領域の長さは、ページ・サイズの次の倍数に切り上げられます。 |
| flags | キャッシング操作の実行方法を決定する、以下のシンボリック定数を 1 つ以上指定します。
|
戻り値
正常に実行された場合、 msync サブルーチンは 0 を戻します。 そうでない場合は-1を返し、エラーを示すグローバル変数errnoをセットする。
エラー・コード
msync サブルーチンが失敗すると、 errno グローバル変数は次のいずれかの値に設定されます。
| 項目 | 説明 |
|---|---|
| EBUSY | msync サブルーチンに渡された範囲内の 1 つ以上のページが固定されています。 |
| EIO | ファイル・システムの読み取り中または書き込み中に、入出力エラーが発生しました。 |
| ENOMEM | (addr, addr + len) で指定された範囲が、プロセスのアドレス・スペースに対して無効であるか、範囲が 1 つ以上のマップされていないページを指定しています。 |
| EINVAL | addr 引数は、 Name パラメーターの _SC_PAGE_SIZE 値を使用して sysconf サブルーチンが戻すページ・サイズの倍数ではありません。 または flags パラメーターが無効です。 領域のアドレスは、プロセスの継承可能なアドレス・スペース内にあります。 |