Aggiunto l'header nell'environment per scrivere i prototipi delle funzioni e
[gapil.git] / socket.tex
index 4f18f9f098d4f915875d4c56d69e0adc440e86be..ecf1a9eeb826183a1a6377e0cf76e52a1630e59a 100644 (file)
@@ -75,14 +75,13 @@ dei file che contiene i puntatori alle opportune strutture usate dal kernel ed
 allocate per ogni processo, (la stessa usata per i files e le pipes [NdA
 verificare!]).
 
-Il prototipo della funzione è definito nell'header \texttt{sys/socket.h}, la
-funzione prende tre parametri, il dominio del socket (che definisce la
+La funzione prende tre parametri, il dominio del socket (che definisce la
 famiglia di protocolli, vedi \secref{sec:sock_domain}), il tipo di socket (che
 definisce lo stile di comunicazione vedi \secref{sec:sock_type}) e il
 protocollo; in genere quest'ultimo è indicato implicitamente dal tipo di
 socket, per cui viene messo a zero (con l'eccezione dei \textit{raw socket}).
 
-\begin{prototype}{int socket(int domain, int type, int protocol)}
+\begin{prototype}{sys/socket.h}{int socket(int domain, int type, int protocol)}
   
   La funzione restituisce un intero positivo se riesce, e -1 se fallisce, in
   quest'ultimo caso la variabile \texttt{errno} è settata con i seguenti
@@ -534,24 +533,27 @@ esempio nel caso dell'intero a 16 bit ci si ritrover
 suddiviso scambiati di posto, e ne sarà quindi invertito l'ordine di lettura
 per cui, per riavere il valore originale dovrenno essere rovesciati.
 
-Per questo motivo si usano le seguenti funzioni di conversione (i cui
-prototipi sono definiti in \texttt{netinet/in.h}) che servono a tener conto
-automaticamente della possibile differenza fra l'ordinamento usato sul
-computer e quello che viene usato nelle trasmissione sulla rete; queste
-funzioni sono:{
-\begin{prototype}{unsigned long int htonl(unsigned long int hostlong)} 
+Per questo motivo si usano le seguenti funzioni di conversione che servono a
+tener conto automaticamente della possibile differenza fra l'ordinamento usato
+sul computer e quello che viene usato nelle trasmissione sulla rete; queste
+funzioni sono:
+\begin{prototype}{netinet/in.h}
+{unsigned long int htonl(unsigned long int hostlong)} 
   Converte l'intero a 32 bit \texttt{hostlong} dal formato della macchina a
   quello della rete.
 \end{prototype}
-\begin{prototype}{unsigned sort int htons(unsigned short int hostshort)}
+\begin{prototype}{netinet/in.h}
+{unsigned sort int htons(unsigned short int hostshort)}
   Converte l'intero a 16 bit \texttt{hostshort} dal formato della macchina a
   quello della rete.
 \end{prototype}
-\begin{prototype}{unsigned long int ntonl(unsigned long int netlong)}
+\begin{prototype}{netinet/in.h}
+{unsigned long int ntonl(unsigned long int netlong)}
   Converte l'intero a 32 bit \texttt{netlong} dal formato della rete a quello
   della macchina.
 \end{prototype}
-\begin{prototype}{unsigned sort int ntons(unsigned short int netshort)}
+\begin{prototype}{netinet/in.h}
+{unsigned sort int ntons(unsigned short int netshort)}
   Converte l'intero a 16 bit \texttt{netshort} dal formato della rete a quello
   della macchina.
 \end{prototype}
@@ -571,10 +573,9 @@ codice su tutte le architetture.
   \texttt{inet\_ntoa}}
 \label{sec:sock_func_ipv4}
 
-Un secondo insieme di funzioni di manipolazione (i cui prototipi sono definiti
-in \texttt{arpa/inet.h}) serve per passare dal formato binario usato nelle
-strutture degli indirizzi alla rappresentazione dei numeri IP che si usa
-normalente.
+Un secondo insieme di funzioni di manipolazione serve per passare dal formato
+binario usato nelle strutture degli indirizzi alla rappresentazione dei numeri
+IP che si usa normalente.
 
 Le prime tre funzioni di manipolazione riguardano la conversione degli
 indirizzi IPv4 da una stringa in cui il numero di IP è espresso secondo la
@@ -582,15 +583,16 @@ cosiddetta notazione \textit{dotted-decimal}, (cio
 \texttt{192.160.0.1}) al formato binario (direttamente in \textit{network
   order}) e viceversa; in questo caso si usa la lettera $a$ come mnemonico per
 indicare la stringa. Dette funzioni sono:
-\begin{prototype}{int inet\_aton(const char *src, struct in\_addr *dest)}
-  Converte la stringa puntata da \texttt{src} nell'indirizzo binario da
-  memorizzare all'indirizzo puntato da \texttt{dest}, restituendo 0 in caso
-  di successo e 1 in caso di fallimento (è espressa in questa forma in modo da
-  poterla usare direttamente con il puntatore usato per passare la struttura
-  degli indirizzi). Se usata con \texttt{dest} inizializzato a
-  \texttt{NULL} effettua la validazione dell'indirizzo.
-\end{prototype}  
-\begin{prototype}{in\_addr\_t inet\_addr(const char *strptr)}
+\begin{prototype}{arpa/inet.h}
+  {int inet\_aton(const char *src, struct in\_addr *dest)} Converte la stringa
+  puntata da \texttt{src} nell'indirizzo binario da memorizzare all'indirizzo
+  puntato da \texttt{dest}, restituendo 0 in caso di successo e 1 in caso di
+  fallimento (è espressa in questa forma in modo da poterla usare direttamente
+  con il puntatore usato per passare la struttura degli indirizzi). Se usata
+  con \texttt{dest} inizializzato a \texttt{NULL} effettua la validazione
+  dell'indirizzo.
+\end{prototype}
+\begin{prototype}{arpa/inet.h}{in\_addr\_t inet\_addr(const char *strptr)}
   Restituisce l'indirizzo a 32 bit in network order a partire dalla stringa
   passata come parametro, in caso di errore restituisce il valore
   \texttt{INADDR\_NONE} che tipicamente sono trentadue bit a uno; questo
@@ -598,7 +600,7 @@ indicare la stringa. Dette funzioni sono:
   valido, non può essere usata con questa funzione; per questo motivo essa è
   generalmente deprecata in favore della precedente.
 \end{prototype}  
-\begin{prototype}{char *inet\_ntoa(struct in\_addr addrptr)}
+\begin{prototype}{arpa/inet.h}{char *inet\_ntoa(struct in\_addr addrptr)}
   Converte il valore a 32 bit dell'indirizzo (espresso in network order)
   restituendo il puntatore alla stringa che contiene l'espressione in formato
   dotted decimal. Si deve tenere presente che la stringa risiede in memoria