Manuale PHP
Indietro |  | Avanti

# CXXXV. Funzioni relative alla memoria condivisa

# Introduzione

Shmop è un set di funzioni di semplice utilizzo che permettono al PHP di leggere, scrivere, creare e cancellare i segmenti di memoria condivisa di Unix.

> Nota: Occorre rilevare che nelle versioni di Windows precedenti a Windows 2000 non supportano la memoria condivisa. In Windows, le funzioni Shmop sono eseguilbili solo se il PHP sta girando come server web, tipo con Apache o ISS (nelle modalità CLI o CGI non è utilizzabile). Nella versione 4.0.3 di PHP queste funzioni hanno il prefisso shm anzichè shmop.

# Requisiti

Non sono necessarie librerie esterne per utilizzare questo modulo.

# Installazione

Per utilizzare shmop occorre compilare il PHP con il parametro --enable-shmop nella linea di configurazione.

# Configurazione di Runtime

Questa estensione non definisce alcuna direttiva di configurazione in `php.ini`

# Tipi di risorse

# Costanti predefinite

Questa estensione non definisce alcuna costante.

# Esempi

Esempio 1. Descrizione delle operazioni con la memoria condivisa

`<?php
// Crea un blocco di memoria condivisa di 100 byte con id 0xff3
$shm_id = shmop_open(0xff3, "c", 0644, 100);
if (!$shm_id) {
echo "Non si riesce a creare il segmento di memoria condivisa\n";
}
// Ottiene la dimensione del blocco di memoria
$shm_size = shmop_size($shm_id);
echo "Dimesione blocco creato: " . $shm_size . ".\n";
// Scrittura di una stringa di test nella memoria condivisa
$shm_bytes_written = shmop_write($shm_id, "my shared memory block", 0);
if ($shm_bytes_written != strlen("my shared memory block")) {
echo "Non si riesce a scrivere tutti i dati\n";
}
// Ora si rilegge la stringa
$my_string = shmop_read($shm_id, 0, $shm_size);
if (!$my_string) {
echo "Non si riesce a leggere dalla memoria condivisa\n";
}
echo "I dati presenti nella memoria condivisa sono: ".$my_string."\n";
// Ora si cancella il blocco e si chiude il segmento di memoria condivisa
if (!shmop_delete($shm_id)) {
echo "Non si riesce a marcare il blocco di memoria condivisa per la cancellazione.";
}
shmop_close($shm_id);
?>`

Indietro | Partenza | Avanti
session_write_close | Risali | shmop_close