PHP マニュアル
前のページ |  | 次のページ

# XCIV共有メモリ関数(shmop)

shmop は、共有メモリセグメントをPHPから簡単に読み書きまたは作成、 削除することを可能にする一連の関数です。Windows上では共有メモリが サポートされないため、これらの関数は動作しません。shmopを使用する には、--enable-shmop パラメータを configure に指定してPHPをコンパ イルする必要があります。

> 注意 このモジュールは実験的なものです。APIその他は、通知なく変更される 可能性があります。

> PHP 4.0.3では、これらの関数の名前には`shmop`では なく`shm`が前に付きます。

例 1共有メモリ操作の概要
    <?php

    // システムID 0xff3を有する 100 バイトの共有メモリブロックを作成する
    $shm_id = shmop_open(0xff3, "c", 0644, 100);
    if(!$shm_id) {
    	echo "共有メモリセグメントを作成できませんでした。\n";
    }

    // 共有メモリのブロック長を得る
    $shm_size = shmop_size($shm_id);
    echo "SHM ブロックサイズ: ".$shm_size. " が作成されました。\n";

    // 共有メモリにテスト用の文字列を書き込んでみる
    $shm_bytes_written = shmop_write($shm_id, "my shared memory block", 0);
    if($shm_bytes_written != strlen("my shared memory block")) {
    	echo "データ全体を書き込めませんでした。\n";
    }

    // その文字列を再び読み込んでみる
    $my_string = shmop_read($shm_id, 0, $shm_size);
    if(!$my_string) {
    	echo "共有メモリブロックから読み込めません。\n";
    }
    echo "共有メモリ内のデータは次のようになります: ".$my_string."\n";

    // ブロックを削除し、共有メモリセグメントを閉じる
    if(!shmop_delete($shm_id)) {
    	echo "共有メモリブロックに削除用のマークを付けることができません。";
    }
    shmop_close($shm_id);

    ?>

前のページ | ホーム | 次のページ
session_write_close | 上に戻る | shmop_close