| 日本-日本語 | 
      
  | 
  
      
  | 
  
| 
 | 
     
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] は無効なアドレスを含んでいる。
 
| 目次 | 索引 | 
      
  | 
  ||||||||