(PHP 4, PHP 5)
shm_attach — 共有メモリセグメントを作成またはオープンする
shm_attach() は ID を返します。 これは、指定されたキー key で System V 共有メモリにアクセスする際に使用することが可能です。 最初のコールの際に、サイズが memsize、 オプションのパーミッション perm を指定した共有メモリセグメントを作成します。
同じ key で shm_attach() を 2 回コールした場合は 別の共有メモリ ID が返されますが、両方の ID は同じ共有メモリをアクセスします。 memsize および perm は無視されます。
共有メモリセグメント ID を表す数値。
メモリのサイズ。省略した場合のデフォルトは php.ini の sysvshm.init_mem、あるいは 10000 バイトとなります。
オプションのパーミッション設定。デフォルトは 0666 です。
共有メモリセグメントの ID を返します。
注意:
PHP 5.3.0 より前のバージョンでは、この関数の返す値は integer 型の値でした。 前のバージョンと同じ値を得るには、次のように帰り値を integer へとキャストします。
<?php
// テンポラリファイルを作り、そのパスを返します
$tmp = tempnam('/tmp', 'PHP');
// ファイルトークンキーを取得します
$key = ftok($tmp, 'a');
// SHM リソースをアタッチします。あとでキャストすることに注意
$id = shm_attach($key);
if ($id === false) {
die('共有メモリセグメントを作成できません');
}
// integer にキャストします。PHP 5.3.0 より前のバージョンでは
// リソース ID が返り値となっており、この値はリソースを integer
// にキャストすることで得られるからです
$id = (integer) $id;
?>