CXXXII. Shared Memory Functions

简介

Shmop is an easy to use set of functions that allows PHP to read, write, create and delete Unix shared memory segments.

注: Versions of Windows previous to Windows 2000 do not support shared memory. Under Windows, Shmop will only work when PHP is running as a web server module, such as Apache or IIS (CLI and CGI will not work).

注: In PHP 4.0.3, these functions were prefixed by shm rather than shmop .

需求

要编译本扩展模块不需要外部库文件。

安装

To use shmop you will need to compile PHP with the --enable-shmop parameter in your configure line.

运行时配置

本扩展模块在 php.ini 中未定义任何配置选项。

预定义常量

本扩展模块未定义任何常量。

范例

例子 1. Shared Memory Operations Overview

<?php
   
// Create 100 byte shared memory block with system id if 0xff3
$shm_id = shmop_open ( 0xff3 , "c" , 0644 , 100 );
if (!
$shm_id ) {
    echo
"Couldn't create shared memory segment\n" ;
}

// Get shared memory block's size
$shm_size = shmop_size ( $shm_id );
echo
"SHM Block Size: " . $shm_size . " has been created.\n" ;

// Lets write a test string into shared memory
$shm_bytes_written = shmop_write ( $shm_id , "my shared memory block" , 0 );
if (
$shm_bytes_written != strlen ( "my shared memory block" )) {
    echo
"Couldn't write the entire length of data\n" ;
}

// Now lets read the string back
$my_string = shmop_read ( $shm_id , 0 , $shm_size );
if (!
$my_string ) {
    echo
"Couldn't read from shared memory block\n" ;
}
echo
"The data inside shared memory was: " . $my_string . "\n" ;

//Now lets delete the block and close the shared memory segment
if (! shmop_delete ( $shm_id )) {
    echo
"Couldn't mark shared memory block for deletion." ;
}
shmop_close ( $shm_id );
   
?>

目录
shmop_close  -- Close shared memory block
shmop_delete  -- Delete shared memory block
shmop_open  -- Create or open shared memory block
shmop_read  -- Read data from shared memory block
shmop_size  -- Get size of shared memory block
shmop_write  -- Write data into shared memory block