-Oltre alle caratteristiche che si possono impostare per i socket generici, ci
-sono operazioni specifiche valide per i socket IP, e per gli altri
-protocolli.
-
-
-\subsection{L'uso di \func{ioctl} per i socket TCP e UDP}
-\label{sec:sock_ioctl_TCP_UDP}
+Oltre alle caratteristiche che si possono impostare per i socket generici, la
+funzione \func{ioctl} consente di effettuare alcune operazioni specifiche per
+i socket UDP e TCP. Non esistono operazioni specifiche per i socket IP
+generici, mentre per i pacchetti di altri protocolli trasportati su IP,
+qualora li si gestisca attraverso dei socket, si dovrà fare riferimento
+direttamente all'eventuale supporto presente per il tipo di socket usato (ad
+esempio si possono ricevere pacchetti ICMP con socket di tipo \texttt{raw},
+nel qual caso si dovrà fare riferimento alle operazioni di quest'ultimo).
+
+Le operazioni di controllo disponibili per i socket TCP, come illustrate dalla
+relativa pagina di manuale, accessibile con \texttt{man 7 tcp}, prevedono come
+possibile valore per il secondo argomento della funzione le costanti
+illustrate nell'elenco seguente; il terzo argomento della funzione, gestito
+come \itindex{value~result~argument} \textit{value result argument}, deve
+essere sempre il puntatore ad una variabile di tipo \ctyp{int}:
+\begin{basedescript}{\desclabelwidth{2.5cm}\desclabelstyle{\nextlinelabel}}
+\item[\const{SIOCINQ}] restituisce la quantità di dati non ancora letti
+ presenti nel buffer di ricezione; il socket non deve essere in stato
+ \texttt{LISTEN}, altrimenti si avrà un errore di \errval{EINVAL}.
+\item[\const{SIOCATMARK}] ritorna un intero non nullo, da intendere come
+ valore logico, se il flusso di dati è arrivato sulla posizione in cui sono
+ stati ricevuti \itindex{out-of-band} dati urgenti. Come vedremo in maggior
+ dettaglio in sez.~\ref{sec:TCP_urgent_data} una delle caratteristiche di TCP
+ è quella relativa alla capacità di trasmettere i cosiddetti dati urgenti o
+ \itindex{out-of-band} \textit{out-of-band}. Come già accennato in
+ sez.~\ref{sec:sock_setsockopt} l'opzione \const{SO\_OOBINLINE}
+\item[\const{SIOCOUTQ}]
+\end{basedescript}