(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
shmop_open — 共有メモリブロックを作成またはオープンする
shmop_open() は共有メモリブロックを作成または オープンします。
key
共有メモリブロックのシステム ID であり、10 進数または 16 進数で指定することが可能です。
mode
フラグに設定できる内容は、次のとおりです。
permissions
共有メモリセグメントに設定したい 許可属性で、ファイルに関する許可属性と同様なものです。許可属性は、 例えば 0644
のような 8 進数形式で渡す必要があります。
size
作成したい共有メモリブロックの大きさをバイト数で指定します。
注意:
注意: 既存のメモリセグメントをオープンする場合には、3 番目および 4 番目の引数には 0 を指定する必要があります。
mode
が不正な値だったり、 size
が 0 以下の値の場合、 ValueError がスローされます。 それ以外の場合で、処理に失敗した場合は E_WARNING
が発生します。
バージョン | 説明 |
---|---|
8.0.0 | 成功時に、この関数は Shmop クラスのインスタンスを返すようになりました。 これより前のバージョンでは、リソースが返されていました。 |
8.0.0 | mode が不正な値だったり、 size が 0 以下の値の場合、 ValueError がスローされるようになりました。 これより前のバージョンでは、E_WARNING が発生し、 false を返していました。 |
例1 共有メモリブロックを新規に作成する
<?php
$shm_key = ftok(__FILE__, 't');
$shm_id = shmop_open($shm_key, "c", 0644, 100);
?>
この例は、ftok() が返すシステム ID の共有メモリブロックをオープンします。