Forum und email

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

Example#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"0644100);
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_id0$shm_size);
if (!
$my_string) {
    echo 
$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);
   
?>

Indice dei contenuti

  • shmop_close — Chiusura di un blocco di memoria condivisa
  • shmop_delete — Cancella un blocco di memoria condivisa
  • shmop_open — Crea oppure apre un segmento di memoria condivisa
  • shmop_read — Legge i dati da un segmento di memoria condivisa
  • shmop_size — Restituisce la dimensione di un blocco di memoria condivisa
  • shmop_write — Scrittura di dati nel blocco di memoria condivisa