+Si tenga presente infine che queste funzioni operano sui file con
+l'interfaccia dei file descriptor, e non è consigliabile mescolarle con
+l'interfaccia classica dei \textit{file stream}; a causa delle bufferizzazioni
+interne di quest'ultima infatti si potrebbero avere risultati indefiniti e non
+corrispondenti a quanto aspettato.
+
+Come per le normali operazioni di lettura e scrittura, anche per l'\textsl{I/O
+ vettorizzato} si pone il problema di poter effettuare le operazioni in
+maniera atomica a partire da un certa posizione sul file, così da evitare
+eventuali \itindex{race~condition} \textit{race conditions} in caso di
+combinazione con l'uso di \func{lseek}. Per questo motivo a partire dal kernel
+2.6.30 sono state introdotte anche per l'\textsl{I/O vettorizzato} le analoghe
+delle funzioni \func{pread} e \func{pwrite} (vedi sez.~\ref{sec:file_read} e
+\ref{sec:file_write}); le due funzioni sono \funcd{preadv} e \func{pwritev} ed
+i rispettivi prototipi sono:
+\begin{functions}
+ \headdecl{sys/uio.h}
+
+ \funcdecl{int preadv(int fd, const struct iovec *vector, int count, off\_t
+ offset)}
+ \funcdecl{int pwritev(int fd, const struct iovec *vector, int count, off\_t
+ offset)}
+
+ Eseguono una lettura o una scrittura vettorizzata a partire da una data
+ posizione sul file.
+
+ \bodydesc{Le funzioni hanno gli stessi valori di ritorno e gli stessi errori
+ delle corrispondenti \func{readv} e \func{writev} a cui si può aggiungere:
+ \begin{errlist}
+ \item[\errcode{EOVERFLOW}] \param{offset} ha un valore che non può essere
+ usato come \ctyp{off\_t}.
+ \item[\errcode{ESPIPE}] \param{fd} è associato ad un socket o una pipe.
+ \end{errlist}
+}
+\end{functions}
+
+% TODO preadv e pwritev inserite nel kernel 2.6.30, vedi
+% http://lwn.net/Articles/326818/