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 &amp; 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
+-->
+


Reply via email to