+Oltre alle operazioni base esaminate in \secref{sec:file_base_func} esistono
+tutta una serie di operazioni ausiliarie che è possibile eseguire su un file
+descriptor. Per queste operazioni di manipolazione delle varie proprietà di un
+file descriptor viene usata la funzione \func{fcntl} il cui prototipo è:
+\begin{functions}
+ \headdecl{unistd.h}
+ \headdecl{fcntl.h}
+ \funcdecl{int fcntl(int fd, int cmd)}
+ \funcdecl{int fcntl(int fd, int cmd, long arg)}
+ \funcdecl{int fcntl(int fd, int cmd, struct flock *lock)}
+ La funzione esegue una delle possibili operazioni specificate da \param{cmd}
+ sul file \param{fd}.
+
+ La funzione ha valori di ritorno diversi a seconda dell'operazione. In caso
+ di errore il valore di ritorno è -1 e la variabile \var{errno} viene settata
+ ad un opportuno codice, quelli validi in generale sono:
+ \begin{errlist}
+ \item \macro{EBADF} \param{oldfd} non è un file aperto.
+ \end{errlist}
+\end{functions}
+
+Il comportamento di questa funzione è determinato dal valore del comando
+\param{cmd} che le viene fornito; in \secref{sec:file_dup} abbiamo incontrato
+un esempio, una lista dei possibili valori è riportata di seguito:
+\begin{basedescript}{\desclabelwidth{2.0cm}}
+\item[\macro{F\_DUPFD}] trova il primo file descriptor disponibile di valore
+ maggiore o uguale ad \param{arg} e ne fa una copia di \var{fd}. In caso di
+ successo ritorna il nuovo file descriptor. Gli errori possibili sono
+ \macro{EINVAL} se \param{arg} è negativo o maggiore del massimo consentito o
+ \macro{EMFILE} se il processo ha già raggiunto il massimo numero di
+ descrittori consentito.
+\item[\macro{F\_SETFD}] setta il valore del \textit{file descriptor flag}
+ al valore specificato con\param{arg}. Al momento l'unico bit usato è
+ quello di \textit{close on exec}, identificato dalla costante
+ \macro{FD\_CLOEXEC}.
+\item[\macro{F\_GETFD}] ritorna il valore del \textit{file descriptor flag} di
+ \var{fd}, se \macro{FD\_CLOEXEC} è settato i file descriptor aperti vengono
+ chiusi attraverso una \func{exec} altrimenti (il default) restano aperti.
+\item[\macro{F\_GETFL}] ritorna il valore del \textit{file status flag},
+ permette cioè di rileggere quei bit settati da \func{open} all'apertura del
+ file che vengono memorizzati (quelli riportati nella prima e terza sezione
+ di \tabref{tab:file_open_flags}).
+\item[\macro{F\_SETFL}] setta il \textit{file status flag} al valore
+ specificato da \param{arg}, possono essere settati solo i bit riportati
+ nella terza sezione di \tabref{tab:file_open_flags} (da verificare).
+\end{basedescript}
+