shmop_open
shmop_open — 共有メモリブロックを作成またはオープンする
説明
int shmop_open ( int key, string flags, int mode, int size )shmop_open() は共有メモリブロックを作成または オープンします。
パラメータ
- key
-
共有メモリブロックのシステム ID であり、10 進数または
16 進数で指定することが可能です。
- flags
-
フラグに設定できる内容は、次のとおりです。
- "a" アクセス用(shmat に SHM_RDONLY を設定する) 既存の共有メモリセグメントを読み込み専用でオープンする必要がある場合に このフラグを使用してください。
- "c" 作成用(IPC_CREATE を設定する) 新規に共有メモリセグメントが必要な場合にこのフラグを使用してください。 もし同じキーのセグメントがすでに存在する場合、それを読み書きモードで オープンしようと試みます。
- "w" 読み込み & 書き込みアクセス用 共有メモリセグメントの読み込みや書き込みの必要がある場合にこのフラグを 使用してください。たいていの場合はこのフラグを使用します。
- "n" 新規メモリセグメントの作成用(IPC_CREATE|IPC_EXCL を設定する) 新規に共有メモリセグメントが必要で、もし同じフラグのセグメントが 存在するときには失敗させたい場合にこのフラグを使用してください。 セキュリティを確保するために、このフラグは有用です。これを使用する ことで、条件の競合による問題を避けることが可能です。
- mode
-
共有メモリセグメントに設定したい
許可属性で、ファイルに関する許可属性と同様なものです。許可属性は、
例えば 0644 のような 8 進数形式で渡す必要があります。
- size
-
作成したい共有メモリブロックの大きさをバイト数で指定します。
返り値
成功した場合は、shmop_open() は 作成した共有メモリセグメントにアクセスするために使用する ID を返します。 失敗した場合に FALSE を返します。例
例 2092. 共有メモリブロックを新規に作成する
<?php
$shm_key = ftok(__FILE__, 't');
$shm_id = shmop_open($shm_key, "c", 0644, 100);
?>
この例は、ftok() が返すシステム ID の共有メモリブロックをオープンします。
参考
shmop_close() |
shmop_delete() |
Weblioに収録されているすべての辞書からshmop_openを検索する場合は、下記のリンクをクリックしてください。

- shmop_openのページへのリンク