読者です 読者をやめる 読者になる 読者になる

by shigemk2

当面は技術的なことしか書かない

mmap

Linux
MMAP(2)                    Linux Programmer’s Manual                   MMAP(2)



名前
       mmap, munmap - ファイルやデバイスをメモリにマップ/アンマップする

書式
       #include <sys/mman.h>

       void *mmap(void *addr, size_t length, int prot, int flags,
                  int fd, off_t offset);
       int munmap(void *addr, size_t length);

説明
       mmap() は、新しいマッピングを呼び出し元プロセスの仮想アドレス空間に作成する。新しいマッピングの開始アドレスは addr で指定される。マッピングの長さは length
       引き数で指定される。

       addr が  NULL の場合、カーネルがマッピングを作成するアドレスを選択する。この方法は最も移植性のある新しいマッピングの作成方法である。 addr が NULL でない 場
       合、カーネルはマッピングをどこに配置するかのヒントとして addr を使用する。Linux では、マッピングはすぐ近くのページ境界に作成される。新しいマッピングのアド
       レスは、呼び出しの返り値として返される。

       ファイルマッピングの内容は、ファイルディスクリプタ fd で参照されるファイル (もしくは他のオブジェクト) のオフセット offset から開始される length バイトのデ
       ータでサイズの倍数でファイルマッピングは無名マッピングの反対語である。 MAP_ANONYMOUS を参照)。 offset は sysconf(_SC_PAGE_SIZE) が返すページ
       なければならない。

       引き数 prot には、マッピングのメモリ保護をどのように行なうかを指定する (ファイルのオープンモードと矛盾してはいけない)。 prot には、 PROT_NONE か、以下のフ
       ラグをひとつ以上ビット毎の論理和 (OR) をとったものを指定できる。