Forum und email

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.

Note: 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).

Note: 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 中未定义任何配置选项。

资源类型

预定义常量

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

范例

Example#1 Shared Memory Operations Overview

<?php
   
// Create 100 byte shared memory block with system id of 0xff3
$shm_id shmop_open(0xff3"c"0644100);
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_id0$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);
   
?>

Table of Contents