JM プロジェクトは、主に Linux 関連のマニュアルページの日本語ページを翻訳・公開しています。
... ot have the value IPC_PRIVATE ), or to create a new set. key の値が IPC_PRIVATE の場合、もしくは key に対応する共有メモリーセグメントが存在せず、 shmflg に IPC_CREAT が指定されていた場合、 新しい共有メモリーセグメントを作成する。 作成される共有メモリーセグメ ... へと切り上げた (round up) 大きさとなる。 shmflg に IPC_CREAT と IPC_EXCL の両方が指定された場合、 key に対応する共有メモリーセグメントが既に存在すると、 shmget () は失敗し、 errno に EEXIST が設定される (これは open (2) に O_CREAT | O_EXCL を指定した場合の動 ... 作と同じである)。 shmflg は以下の内容から構成される: IPC_CREAT 新しいセグメントを作成する。このフラグが指定されなかった場合、 shmget () は key に対応するセグメントを探し、 ユーザーがそのセグメントにアクセ ... ... hmaddr , int shmflg ); int shmdt(const void * shmaddr ); 説明 shmat() shmat () は shmid で指定された System V 共有メモリーセグメント (shared memory segment) を コールしたプロセスのアドレス空間に付加 (attach) する。 付加するアドレスは shmaddr に以下のどれか ... の形式で指定する: • shmaddr が NULL ならば、システムはセグメントを付加するための 適切な (使用されていない) ページ境界のアドレスを選択する。 • shmaddr が NULL でなく SHM_RND が shmflg に指定 ... 必要がある。 SHM_RND に加えて、以下のフラグを shmflg ビットマスク引数に指定できる。 SHM_EXEC (Linux 固有; Linux 2.6.9 以降) セグメントの内容を実行できる。 呼び出し元はセグメントに対する実行許可を持っていなければならない。 SHM_RDONLY セグメントを読み込み専用に ... ... hmaddr , int shmflg ); int shmdt(const void * shmaddr ); 説明 shmat() shmat () は shmid で指定された System V 共有メモリーセグメント (shared memory segment) を コールしたプロセスのアドレス空間に付加 (attach) する。 付加するアドレスは shmaddr に以下のどれか ... の形式で指定する: • shmaddr が NULL ならば、システムはセグメントを付加するための 適切な (使用されていない) ページ境界のアドレスを選択する。 • shmaddr が NULL でなく SHM_RND が shmflg に指定 ... 必要がある。 SHM_RND に加えて、以下のフラグを shmflg ビットマスク引数に指定できる。 SHM_EXEC (Linux 固有; Linux 2.6.9 以降) セグメントの内容を実行できる。 呼び出し元はセグメントに対する実行許可を持っていなければならない。 SHM_RDONLY セグメントを読み込み専用に ... ... hmaddr , int shmflg ); int shmdt(const void * shmaddr ); 説明 shmat() shmat () は shmid で指定された System V 共有メモリーセグメント (shared memory segment) を コールしたプロセスのアドレス空間に付加 (attach) する。 付加するアドレスは shmaddr に以下のどれか ... の形式で指定する: • shmaddr が NULL ならば、システムはセグメントを付加するための 適切な (使用されていない) ページ境界のアドレスを選択する。 • shmaddr が NULL でなく SHM_RND が shmflg に指定 ... 必要がある。 SHM_RND に加えて、以下のフラグを shmflg ビットマスク引数に指定できる。 SHM_EXEC (Linux 固有; Linux 2.6.9 以降) セグメントの内容を実行できる。 呼び出し元はセグメントに対する実行許可を持っていなければならない。 SHM_RDONLY セグメントを読み込み専用に ... ... hmid_ds * buf ); 説明 shmctl () は、識別子が shmid の System V 共有メモリーセグメントに対して cmd で指示した制御命令を実行する。 buf 引数は、 shmid_ds 構造体へのポインターである。 この構造体は < sys/shm.h > で ... 以下のように定義されている struct shmid_ds { struct ipc_perm shm_perm; /* 所有権と許可 */ size_t shm_segsz; /* セグメントのサイズ (バイト) */ time_t shm_atime; /* 最後の付加 (attach) の時刻 */ time_t shm_dtime; /* 最後の分離 (detach) の時刻 */ t ... n ipc_perm structure (see below) that specifies the access permissions on the shared memory segment. shm_segsz 共有メモリーセグメントのサイズ (バイト単位)。 shm_atime Time of the last shmat (2) system call that attached this segment. shm_dtime Time of the l ... ... 実行可能ファイルまたは共有オブジェクトファイルのプログラムヘッダーテーブルは、 システムによるプログラム実行準備に必要な、 セグメント等の情報を記述する構造体の配列である。 オブジェクトファイルの セグメント には 1 つ以上の セクション が含まれる。 プログラムヘ ... ーの主な違いは、構造体における p_flags メンバの位置にある。 p_type Phdr 構造体のこのメンバは、 この配列要素がどのような種類のセグメントを記述しているか、 またはこの配列要素の情報をどのように解釈するか、を表す。 PT_NULL この配列要素は使用されておらず、その他の ... れにより、このプログラムヘッダーのエントリーは無視される。 PT_LOAD この配列要素は p_filesz と p_memsz で記述されるロード可能セグメントを指定する。 このファイルからのバイトデータが、このメモリーセグメントの先頭からマップされる。 セグメントのメモリーサイズ Sy ... ... から共有オブジェクトがロードされる。 dlpi_phdr と dlpi_phnum フィールドの意味を理解するには、 ELF 共有オブジェクトが幾つかのセグメントから構成されていることと、 各セグメントがそれに対応するプログラムヘッダー (そのセグメントを説明する) を持っていることを知って ... この配列のサイズを表す。 これらのプログラムヘッダーは以下のような形式の構造体である: typedef struct { Elf32_Word p_type; /* セグメントの型 */ Elf32_Off p_offset; /* セグメントのファイルオフセット */ Elf32_Addr p_vaddr; /* セグメントの仮想アドレス */ Elf32_Ad ... dr p_paddr; /* セグメントの物理アドレス */ Elf32_Word p_filesz; /* ファイルにおけるセグメントサイズ */ Elf32_Word p_memsz; /* メモリーにおけるセグメン ... ... XED の説明を参照のこと。 Linux ではメモリーはページに分割される。ユーザープロセスは (一つまたは) 複数のリニアな仮想メモリーセグメントを持つ。 それぞれの仮想メモリーセグメントは一つ以上の実メモリーページ にマッピングされている (マッピング情報はページテーブル ... で管理される)。 仮想メモリーセグメントにはセグメント毎の保護 (アクセス権) が設定されており、 メモリーが不正にアクセスされた場合 (例えば読み込み専用のセグメントに ... 書き込んだ場合)、セグメンテーション侵害 (segmentation violation) を 引き起こす。また、セグメント外の仮想メモリーにアクセスした場合にも セグメンテーション侵害が発生する。 mremap () は Linux のページテーブル方式を使用する。 ... ... トの終わりを示す。 etext テキストセグメント (プログラムのコード) の末尾の次のアドレス。 edata 初期化されたデータのセグメントの末尾の次のアドレス。 end 初期化されていな ... いデータのセグメント (BSS セグメントとも言われる) の末尾の次のアドレス。 準拠 これらのシンボルは長年ほとんどの UNIX システムで提供されているが、 ... ... トの終わりを示す。 etext テキストセグメント (プログラムのコード) の末尾の次のアドレス。 edata 初期化されたデータのセグメントの末尾の次のアドレス。 end 初期化されていな ... いデータのセグメント (BSS セグメントとも言われる) の末尾の次のアドレス。 準拠 これらのシンボルは長年ほとんどの UNIX システムで提供されているが、 ... 日本語の文書やマニュアルを配布している個人/プロジェクトへのリンクです。