darvina Tue Apr 9 15:48:14 2002 EDT
Modified files:
/phpdoc/it/functions shmop.xml
Log:
Initial translation
Index: phpdoc/it/functions/shmop.xml
diff -u /dev/null phpdoc/it/functions/shmop.xml:1.5
--- /dev/null Tue Apr 9 15:48:14 2002
+++ phpdoc/it/functions/shmop.xml Tue Apr 9 15:48:14 2002
@@ -0,0 +1,368 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- EN-Revision: 1.15 Maintainer: darvina Status: ready -->
+<reference id="ref.shmop">
+ <title>Funzioni relative alla memoria condivisa</title>
+ <titleabbrev>shmop</titleabbrev>
+
+ <partintro>
+ <para>
+ 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.
+ </para>
+ <note>
+ <simpara>
+ Questo modulo � sperimentale. Le API e altre informazioni possono essere
+ soggette a variazioni senza notifica.
+ </simpara>
+ <simpara>
+ Nella versione 4.0.3 di PHP queste funzioni hanno il prefisso
+<literal>shm</literal>
+ anzich� <literal>shmop</literal>.
+ <!-- TODO: le vecchie funzioni shm_* funcs funzionano ancora?, sono un alias?
+ -->
+ </simpara>
+ </note>
+ <para>
+ <example>
+ <title>Descrizione delle operazioni con la memoria condivisa</title>
+ <programlisting role="php">
+<![CDATA[
+<?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);
+
+?>
+]]>
+ </programlisting>
+ </example>
+ </para>
+ </partintro>
+
+ <refentry id="function.shmop-open">
+ <refnamediv>
+ <refname>shmop_open</refname>
+ <refpurpose>Crea oppure apre un segmento di memoria condivisa</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Descrizione</title>
+ <methodsynopsis>
+ <type>int</type><methodname>shmop_open</methodname>
+ <methodparam><type>int</type><parameter>key</parameter></methodparam>
+ <methodparam><type>string</type><parameter>flags</parameter></methodparam>
+ <methodparam><type>int</type><parameter>mode</parameter></methodparam>
+ <methodparam><type>int</type><parameter>size</parameter></methodparam>
+ </methodsynopsis>
+ <para>
+ La funzione <function>shmop_open</function> pu� creare oppure aprire un segmento
+di memoria condivisa.
+ </para>
+ <para>
+ La funzione <function>shmop_open</function> utilizza 4 parametri: key, indica
+l'identificativo
+ di sistema per il segmento di memoria condivisa, questo parametro pu� essere
+passato
+ come numero decimale o esadecimale. Il secondo parametro � un flag che pu�
+assumere i seguenti valori:
+ <itemizedlist>
+ <listitem>
+ <simpara>
+ "a" per accesso (SHM_RDONLY per shmat),
+ usare questo flag quando occorre aprire un segmento di memoria condivisa
+esistente in sola lettura
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ "c" per creazione (IPC_CREATE),
+ usare questo flag quando si ha la necessit� di creare un nuovo segmento di
+memoria condivisa oppure,
+ se esiste gi� un segmento con la medesima chiave, tentare di aprirlo in
+lettura e scrittura
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ "w" per accesso in lettura & scrittura,
+ usare questo flag quando si deve accedere al segmento di memoria condivisa in
+lettura e scrittura,
+ nella maggior parte dei casi si usa questo flag.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ "n" per creare un nuovo segmento (IPC_CREATE|IPC_EXCL),
+ usare questo flag quando si vuole creare un nuovo segmento di memoria
+condivisa, ma,
+ se gi� ne esiste uno con il medesimo flag, la funzione fallisce. Ci� � utile
+per motivi di sicurezza,
+ infatti questo permette di evitare problemi di concorrenza.
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ Il terzo parametro, mode, indica i permessi che si desidera assegnare
+ al segmento di memoria, questi sono i medesimi permessi utilizzati per
+ un file. Occorre passare i permessi in forma ottale, ad esempio 0644.
+ L'ultimo parametro � la dimensione in bytes del blocco di memoria condivisa che
+si
+ desidera creare.
+ <note><simpara>
+ Il terzo ed il quarto parametro dovrebbero essere a 0 se si sta aprendo
+ un segmento di memoria esistene. Se la funzione <function>shmop_open</function>
+ha
+ successo, sar� restituito un id da usarsi per accedere al segmento di memoria
+ condivisa appena creato.
+ </simpara></note>
+ </para>
+ <para>
+ <example>
+ <title>Creazione di un nuovo blocco di memoria condivisa</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+$shm_id = shmop_open(0x0fff, "c", 0644, 100);
+?>
+]]>
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ Questo esempio apre un blocco di memoria condivisa con id di sistema pari a
+0x0fff.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.shmop-read">
+ <refnamediv>
+ <refname>shmop_read</refname>
+ <refpurpose>Legge i dati da un segmento di memoria condivisa</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Descrizione</title>
+ <methodsynopsis>
+ <type>string</type><methodname>shmop_read</methodname>
+ <methodparam><type>int</type><parameter>shmid</parameter></methodparam>
+ <methodparam><type>int</type><parameter>start</parameter></methodparam>
+ <methodparam><type>int</type><parameter>count</parameter></methodparam>
+ </methodsynopsis>
+ <para>
+ La funzione <function>shmop_read</function> legge una stringa da un blocco di
+memoria condivisa.
+ </para>
+ <para>
+ La funzione <function>shmop_read</function> utilizza 3 parametri: shmid, che �
+l'identificativo
+ del blocco di memoria condivisa creato da <function>shmop_open</function>;
+start, che indica
+ l'offset da cui partire a leggere e count che indica il numero dei byte da
+leggere.
+ </para>
+ <para>
+ <example>
+ <title>Lettura di un segmento di memoria condivisa</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+$shm_data = shmop_read($shm_id, 0, 50);
+?>
+]]>
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ Questo esempio legge 50 byte da un blocco di memoria condivisa e posiziona
+ i dati nella variabile <literal>$shm_data</literal>.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.shmop-write">
+ <refnamediv>
+ <refname>shmop_write</refname>
+ <refpurpose>Scrittura di dati nel blocco di memoria condivisa</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Descrizione</title>
+ <methodsynopsis>
+ <type>int</type><methodname>shmop_write</methodname>
+ <methodparam><type>int</type><parameter>shmid</parameter></methodparam>
+ <methodparam><type>string</type><parameter>data</parameter></methodparam>
+ <methodparam><type>int</type><parameter>offset</parameter></methodparam>
+ </methodsynopsis>
+ <para>
+ La funzione <function>shmop_write</function> scrive una stringa in un segmento
+di memoria condivisa.
+ </para>
+ <para>
+ La funzione <function>shmop_write</function> utilizza 3 parametri: shmid, che �
+l'identificativo
+ del blocco di memoria condiviso creato da <function>shmop_open</function>;
+ data, che � la stringa che si vuole scrivere nel blocco di memoria e offset,
+ che specifica dove cominciare a scrivere nella memoria condivisa.
+ </para>
+ <para>
+ <example>
+ <title>Scrittura di un blocco di memoria condivisa</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+$shm_bytes_written = shmop_write($shm_id, $my_string, 0);
+?>
+]]>
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ Questo esempio scrive i dati della variabile <literal>$my_string</literal> nel
+ blocco di memoria condivisa, mentre <literal>$shm_bytes_written</literal>
+contiene
+ il numero dei byte scritti.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.shmop-size">
+ <refnamediv>
+ <refname>shmop_size</refname>
+ <refpurpose>Restituisce la dimensione di un blocco di memoria
+condivisa</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Descrizione</title>
+ <methodsynopsis>
+ <type>int</type><methodname>shmop_size</methodname>
+ <methodparam><type>int</type><parameter>shmid</parameter></methodparam>
+ </methodsynopsis>
+ <para>
+ Si utilizza la funzione <function>shmop_size</function> per ottenere la
+dimensione in byte
+ del segmento di memoria condivisa.
+ </para>
+ <para>
+ La funzione <function>shmop_size</function> ha un solo parametro, shmid, che �
+l'identificativo
+ del blocco di memoria condiviso creato da <function>shmop_open</function>; la
+funzione
+ restituisce un numero intero che rappresenta il numero dei byte occupati
+ dal segmento di memoria condivisa.
+ </para>
+ <para>
+ <example>
+ <title>Come ottenere la dimensione della memoria condivisa</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+$shm_size = shmop_size($shm_id);
+?>
+]]>
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ In questo esempio si memorizza nella variabile <literal>$shm_size</literal>
+ la dimensione del blocco di memoria identificato da <literal>$shm_id</literal>.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.shmop-delete">
+ <refnamediv>
+ <refname>shmop_delete</refname>
+ <refpurpose>Cancella un blocco di memoria condivisa</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Descrizione</title>
+ <methodsynopsis>
+ <type>int</type><methodname>shmop_delete</methodname>
+ <methodparam><type>int</type><parameter>shmid</parameter></methodparam>
+ </methodsynopsis>
+ <para>
+ La funzione <function>shmop_delete</function> viene utilizzata per cancellare un
+blocco di memoria condivisa.
+ </para>
+ <para>
+ La funzione <function>shmop_delete</function> ha un solo parametro, shmid, che �
+l'identificativo
+ del blocco di memoria condiviso creato da <function>shmop_open</function>. Se la
+funzione ha
+ successo restituisce 1, altrimenti 0.
+ </para>
+ <para>
+ <example>
+ <title>Cancellazione di un segmento di memoria condivisa</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+shmop_delete($shm_id);
+?>
+]]>
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ In questo esempio si cancella il segmento di memoria condivisa identificato da
+ <literal>$shm_id</literal>.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.shmop-close">
+ <refnamediv>
+ <refname>shmop_close</refname>
+ <refpurpose>Chiusura di un blocco di memoria condivisa</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Descrizione</title>
+ <methodsynopsis>
+ <type>int</type><methodname>shmop_close</methodname>
+ <methodparam><type>int</type><parameter>shmid</parameter></methodparam>
+ </methodsynopsis>
+ <para>
+ Si utilizza la funzione <function>shmop_close</function> per chiudere un
+segmento di memoria condivisa.
+ </para>
+ <para>
+ La funzione <function>shmop_close</function> ha un solo parametro, shmid, che �
+l'identificativo
+ del blocco di memoria condivisa creato da <function>shmop_open</function>.
+ </para>
+ <para>
+ <example>
+ <title>Chiusura di un blocco di memoria condivisa</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+shmop_close($shm_id);
+?>
+]]>
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ In questo esempio si chiude il blocco di memoria condivisa identificata da
+<literal>$shm_id</literal>.
+ </para>
+ </refsect1>
+ </refentry>
+ </reference>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+indent-tabs-mode:nil
+sgml-parent-document:nil
+sgml-default-dtd-file:"../../manual.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vim600: syn=xml fen fdm=syntax fdl=2 si
+vim: et tw=78 syn=sgml
+vi: ts=1 sw=1
+-->
+