PHP Manual
Prev |  | Next

# XCIV. 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. These functions will not typically work on Windows, as it does not support shared memory. As of Windows 2000 though, enabling the php_shmop.dll in your php.ini will enable this functionality though.

> 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);

    ?>

Prev | Home | Next
session_write_close | Up | shmop_close