XCIII. Funzioni relative alla memoria condivisa
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. Queste funzioni
non sono attive sui sistemi Windows, dato che quest'ultimo non supporta la memoria condivisa.
Per utilizzare shmop si deve compilare il PHP con il parametro --enable-shmop
nella linea di configurazione.
Nota:
Nella versione 4.0.3 di PHP queste funzioni hanno il prefisso shm
anzichè shmop.
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);
?> |
|
- Sommario
- 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