Provided by: manpages-ja_0.5.0.0.20131015+dfsg-2_all bug

名前

       shm_overview - POSIX 共有メモリの概要

説明

       POSIX 共有メモリ API を使用すると、メモリのある領域を共有して、 プロセス間で情報をやり取り
       することができる。

       この API では以下のインターフェースが採用されている。

       shm_open(3)    新しいオブジェクトを生成しオープンする、もしくは 既存のオブジェクトをオープ
                      ンする。これは open(2) と同じである。下記にある他のインターフェースで使用す
                      る ファイルディスクリプタを返す。

       ftruncate(2)   共有メモリオブジェクトの大きさを設定する。

       mmap(2)        呼び出したプロセスの仮想アドレス空間に共有メモリオブジェクトを マップする。

       munmap(2)      呼び出したプロセスの仮想アドレス空間から 共有メモリオブジェクトをアンマップ
                      する。

       shm_unlink(3)  共有メモリオブジェクト名を削除する。

       close(2)       shm_open(3)   で割り当てられたファイルディスクリプタが不要になった際に、 そ
                      のファイルディスクリプタをクローズする。

       fstat(2)       その共有メモリオブジェクトについての情報が入った stat 構造体を取得する。 こ
                      のシステムコールが返す情報には、オブジェクトのサイズ  (st_size)、  許可属性
                      (st_mode)、 所有者 (st_uid)、 グループ (st_gid)  がある。

       fchown(2)      共有メモリオブジェクトの所有権を変更する。

       fchmod(2)      共有メモリオブジェクトの許可属性を変更する。

   Versions
       POSIX 共有メモリは Linux 2.4 と glibc 2.2 以降でサポートされている。

   持続性
       POSIX 共有メモリオブジェクトはカーネル内で保持される。  共有メモリオブジェクトは、システム
       がシャットダウンされるか、  全てのプロセスがそのオブジェクトをアンマップし、 shm_unlink(3)
       で削除されるまで、存在し続ける。

   リンク
       POSIX 共有メモリ API を使用したプログラムは cc -lrt でコンパイルし、リアルタイムライブラリ
       librt とリンクしなければならない。

   ファイルシステム経由での共有メモリオブジェクトへのアクセス
       Linux では、共有メモリオブジェクトは通常 /dev/shm 以下にマウントされる仮想ファイルシステム
       (tmpfs) 内に作成される。 カーネル 2.6.19 以降の Linux では、  仮想ファイルシステム内のオブ
       ジェクトの許可属性の制御に、 アクセス制御リスト (ACL; access control lists) を使うことがで
       きる。

準拠

       POSIX.1-2001.

注意

       通常は、共有メモリオブジェクトにアクセスするプロセスは、 POSIX  セマフォなどを使ってプロセ
       ス間で同期をとらなければならない。

       System V 共有メモリ (shmget(2), shmop(2)  など) は古い共有メモリ API である。 POSIX 共有メ
       モリは、より簡単で、うまく設計されたインタフェースを提供している。 一方で、POSIX  共有メモ
       リは  System V 共有メモリと比べると 利用できるシステムが少ない (特に、古いシステムでは少な
       い)。

関連項目

       fchmod(2), fchown(2), fstat(2), ftruncate(2), mmap(2), mprotect(2), munmap(2),  shmget(2),
       shmop(2), shm_open(3), shm_unlink(3), sem_overview(7)

この文書について

       この  man ページは Linux man-pages プロジェクトのリリース 3.54 の一部 である。プロジェクト
       の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。