Uno dei problemi che si presentano con l'uso di \func{select} è che il suo
comportamento dipende dal valore del file descriptor che si vuole tenere sotto
-controllo. Infatti il kernel riceve solo un valore massimo, e dovrà
-effettuare una scansione su tutto l'intervallo, che può essere anche molto
-ampio, per capire quali sono i file descriptor da tenere sotto controllo,
-anche se sono solo poche unità; e questo ha ovviamente un pessimo risultato
-per le prestazioni; il comportamenento viene della funzione viene così a
-dipendere in maniera innaturale dal valore del file decriptor.
+controllo. Infatti il kernel riceve con \param{n} un valore massimo per tale
+valore, e per capire quali sono i file descriptor da tenere sotto controllo
+dovrà effettuare una scansione su tutto l'intervallo, che può anche essere
+anche molto ampio anche se i file descriptor sono solo poche unità; tutto ciò
+ha ovviamente delle conseguenze ampiamente negative per le prestazioni.
Inoltre c'è anche il problema che il numero massimo dei file che si possono
tenere sotto controllo, la funzione è nata quando il kernel consentiva un
\begin{table}[htb]
\centering
\footnotesize
- \begin{tabular}[c]{|l|c|l|}
+ \begin{tabular}[c]{|l|l|}
\hline
- \textbf{Flag} & \textbf{Valore} & \textbf{Significato} \\
+ \textbf{Flag} & \textbf{Significato} \\
\hline
\hline
- \const{POLLIN} & 0x001 & È possibile la lettura immediata.\\
- \const{POLLPRI} & 0x002 & Sono presenti dati urgenti.\\
- \const{POLLOUT} & 0x004 & È possibile la scrittura immediata.\\
+ \const{POLLIN} & È possibile la lettura immediata.\\
+ \const{POLLPRI} & Sono presenti dati urgenti.\\
+ \const{POLLOUT} & È possibile la scrittura immediata.\\
\hline
- \const{POLLERR} & 0x008 & C'è una condizione di errore.\\
- \const{POLLHUP} & 0x010 & Si è verificato un hung-up.\\
- \const{POLLNVAL} & 0x020 & Il file descriptor non è aperto.\\
+ \const{POLLERR} & C'è una condizione di errore.\\
+ \const{POLLHUP} & Si è verificato un hung-up.\\
+ \const{POLLNVAL} & Il file descriptor non è aperto.\\
\hline
- \const{POLLRDNORM}& 0x040 & Sono disponibili in lettura dati normali.\\
- \const{POLLRDBAND}& 0x080 & Sono disponibili in lettura dati ad alta
- priorità. \\
- \const{POLLWRNORM}& 0x100 & È possibile la scrittura di dati normali. \\
- \const{POLLWRBAND}& 0x200 & È possibile la scrittura di dati ad
- alta priorità. \\
- \const{POLLMSG} & 0x400 & Un segnale \const{SIGPOLL} è arrivato alla
- cima dello stream.\\
+ \const{POLLRDNORM}& Sono disponibili in lettura dati normali.\\
+ \const{POLLRDBAND}& Sono disponibili in lettura dati ad alta
+ priorità. \\
+ \const{POLLWRNORM}& È possibile la scrittura di dati normali. \\
+ \const{POLLWRBAND}& È possibile la scrittura di dati ad
+ alta priorità. \\
+ \const{POLLMSG} & Un segnale \const{SIGPOLL} è arrivato alla
+ cima dello stream (non usato).\\
\hline
\end{tabular}
\caption{Costanti per l'identificazione dei vari bit dei campi