XCVII. Shared Memory Functions
Introduction
Shmop is an easy to use set of functions that allows PHP
to read, write, create and delete Unix shared memory segments.
Note that versions of Windows previous to Windows 2000 do
not support shared memory. Under Windows, Shmop will only
work when PHP is running in ISAPI mode, 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.
Requirements
No external libraries are needed to build this extension.
Installation
To use shmop you will need to compile PHP with the --enable-shmop
parameter in your configure line.
Runtime Configuration
This extension has no configuration directives defined in
php.ini.
Resource Types
Predefined Constants
This extension has no constants defined.
Examples
Example 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);
?>
Table of Contents
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