Provided by: manpages-ja_0.5.0.0.20221215+dfsg-1_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(5))
       内に作成される。 カーネル 2.6.19 以降の Linux では、 仮想ファイルシステム内のオブジェクトの許可属性の制御
       に、 アクセス制御リスト (ACL; access control lists) を使うことができる。

注意

       通常は、共有メモリーオブジェクトにアクセスするプロセスは、 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 プロジェクトのリリース 5.10  の一部である。プロジェクトの説明とバグ報告
       に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。