Forum und email

Funciones de Memoria Compartida

Introducción

Shmop es un conjunto de funciones que permiten a PHP leer, escribir, crear y borrar de forma sencilla segmentos de memoria compartida de tipo UNIX.

Note: Se debe tener en cuenta que las versiones de Windows anteriores a Windows 2000 no soportan el uso de memoria compartida. En sistemas Windows, Shmop solamente funciona cuando PHP se ejecuta como módulo de un servidor web como Apache o IIS (por tanto, no funciona si PHP se ejecuta como CGI o desde linea de comandos CLI).

Note: En PHP 4.0.3, el nombre de todas estas funciones estaba precedido por el prefijo shm y actualmente lo están por el prefijo shmop.

Requisitos

No se necesitan bibliotecas externas para construir esta extensión

Instalación

Para usar las funciones de memoria compartida, se debe añadir el parámetro --enable-shmop a las opciones de configuración de PHP.

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

Constantes predefinidas

Esta extensión no tiene ninguna constante definida.

Ejemplos

Example#1 Resumen de las operaciones con Memoria Compartida

<?php
   
// Creacion de un segmento de memoria compartida de 100 bytes y con un
// identificador igual a 0xff3
$shm_id shmop_open(0xff3"c"0644100);
if(!
$shm_id) {
    echo 
"No se pudo crear el segmento de memoria compartida\n";
}

// Obtencion del tama&ntilde;o del segmento de memoria compartida
$shm_size shmop_size($shm_id);
echo 
"Segmento de memoria: se han reservado ".$shm_size" bytes.\n";

// Escritura de una cadena de texto de prueba en la memoria compartida
$shm_bytes_written shmop_write($shm_id"mi segmento de memoria compartida",
0);
if(
$shm_bytes_written != strlen("mi segmento de memoria compartida")) {
    echo 
"No se pudieron escribir todos los datos indicados\n";
}

// Lectura de la cadena de texto de prueba
$my_string shmop_read($shm_id0$shm_size);
if(!
$my_string) {
    echo 
"No se pudo leer el segmento de memoria compartida\n";
}
echo 
"Los datos que contenia el segmento de memoria compartida son los 
siguientes:"
.$my_string."\n";

// Borrado y eliminacion del segmento de memoria compartida
if(!shmop_delete($shm_id)) {
    echo 
"No se pudo borrar el segmento de memoria compartida.";
}
shmop_close($shm_id);
   
?>

Table of Contents

  • shmop_close — Cierra un segmento de memoria compartida
  • shmop_delete — Borra un segmento de memoria compartida
  • shmop_open — Crea o abre un segmento de memoria compartida
  • shmop_read — Lee un segmento de memoria compartida
  • shmop_size — Obtiene el tamaño de un segmento de memoria compartida
  • shmop_write — Escribe datos en un segmento de memoria compartida