-anche l'aggiunta di un ulteriore argomento finale, \param{flags}.
-
-Per le funzioni che lo prevedono l'ulteriore argomento \param{flag} è stato
-introdotto per fornire un meccanismo con cui modificarne il comportamento. Il
-solo caso generale, valido per tutte, è quello in cui si sta operando su un
-collegamento simbolico, e si vuole poter scegliere se far agire la funzione
-direttamente sullo stesso o sul file da esso referenziato. Ma oltre a questo
-caso generico, l'argomento viene usato per controllare ulteriori
-caratteristiche di funzionamento, dipendenti dalla funzione stessa, per cui
-deve essere comunque passato come maschera binaria ed impostato usando i
-valori delle appropriate costanti \texttt{AT\_*}, definite in
-\headfile{fcntl.h}.
-
-%% Verificare uso generico di AT_EMPTY_XX
-
-Come esempio delle funzioni che lo utilizzano solo nel caso generico possiamo
+anche l'aggiunta di un argomento finale, \param{flags}, che è stato introdotto
+per fornire un meccanismo con cui modificarne il comportamento.
+
+Per tutte quelle che non hanno un argomento aggiuntivo il comportamento è
+identico alla corrispondente funzione ordinaria, pertanto non le tratteremo
+esplicitamente, vale per loro quanto detto con \func{openat} per l'uso del
+nuovo argomento \param{dirfd}. Quando invece l'argomento è presente il
+comportamento viene modificato a seconda del valore assegnato a \param{flags},
+che deve essere passato come maschera binaria con una opportuna combinazione
+delle costanti elencate in tab.~\ref{tab:at-functions_constant_values}, in
+quanto sono possibili diversi valori a seconda della funzione usata.
+
+\begin{table}[htb]
+ \centering
+ \footnotesize
+ \begin{tabular}[c]{|l|p{8cm}|}
+ \hline
+ \textbf{Costante} & \textbf{Significato} \\
+ \hline
+ \hline
+ \constd{AT\_EMPTY\_PATH} & Usato per operare direttamente (specificando
+ una stringa vuota per il \texttt{pathname})
+ sul file descriptor \param{dirfd} che in
+ questo caso può essere un file qualunque.\\
+ \constd{AT\_SYMLINK\_NOFOLLOW}& Se impostato la funzione non esegue la
+ dereferenziazione dei collegamenti
+ simbolici.\\
+ \hline
+ \constd{AT\_EACCES} & Usato solo da \func{faccessat}, richiede che
+ il controllo dei permessi sia fatto usando
+ l'\ids{UID} effettivo invece di quello
+ reale.\\
+ \constd{AT\_NO\_AUTOMOUNT} & Usato solo da \func{fstatat} e \func{statx},
+ evita il montaggio automatico qualora
+ \param{pathname} faccia riferimento ad una
+ directory marcata per
+ l'\textit{automount}\footnotemark
+ (dal kernel 2.6.38).\\
+ \constd{AT\_REMOVEDIR} & Usato solo da \func{unlinkat}, richiede che
+ la funzione si comporti come \func{rmdir}
+ invece che come \func{unlink}.\\
+ \constd{AT\_SYMLINK\_FOLLOW}& Usato solo da \func{linkat}, se impostato la
+ funzione esegue la dereferenziazione dei
+ collegamenti simbolici.\\
+ \hline
+ \end{tabular}
+ \caption{Le costanti utilizzate per i bit dell'argomento aggiuntivo
+ \param{flags} delle \textit{at-functions}, definite in
+ \headfile{fcntl.h}.}
+ \label{tab:at-functions_constant_values}
+\end{table}
+
+\footnotetext{si tratta di una funzionalità fornita dal kernel che consente di
+ montare automaticamente una directory quando si accede ad un
+ \textit{pathname} al di sotto di essa, per i dettagli, più di natura
+ sistemistica, si può consultare sez.~5.1.6 di \cite{AGL}.}
+
+Si tenga presente che non tutte le funzioni che prevedono l'argomento
+aggiuntivo sono \textit{system call}, ad esempio \func{faccessat} e
+\func{fchmodat} sono realizzate con dei \textit{wrapper} nella \acr{glibc} per
+aderenza allo standard POSIX.1-2008, dato che la \textit{system call}
+sottostante non prevede l'argomento \param{flags}.
+
+In tab.~\ref{tab:at-functions_constant_values} si sono elencati i valori
+utilizzabili per i flag (tranne quelli specifici di \func{statx} su cui
+torneremo più avanti), mantenendo nella prima parte quelli comuni usati da più
+funzioni. Il primo di questi è \const{AT\_SYMLINK\_NOFOLLOW}, che viene usato
+da tutte le funzioni tranne \func{linkat} e \func{unlinkat}, e che consente di
+scegliere, quando si sta operando su un collegamento simbolico, se far agire
+la funzione direttamente sullo stesso o sul file da esso referenziato. Si
+tenga presente però che per \func{fchmodat} questo, che è l'unico flag
+consentito e previsto dallo standard, non è attualmente implementato (anche
+perché non avrebbe molto senso cambiare i permessi di un link simbolico) e
+pertanto l'uso della funzione è analogo a quello delle altre funzioni che non
+hanno l'argomento \param{flags}.
+
+L'altro flag comune è \const{AT\_EMPTY\_PATH}, utilizzabile a partire dal
+kernel 2.6.39, che consente di usare per \param{dirfd} un file descriptor
+associato ad un file qualunque e non necessariamente ad una directory; in
+particolare si può usare un file descriptor ottenuto aprendo un file con il
+flag \param{O\_PATH} (vedi quanto illustrato a
+pag.~\pageref{open_o_path_flag}). Quando si usa questo flag \param{pathname}
+deve essere vuoto, da cui il nome della costante, ed in tal caso la funzione
+agirà direttamente sul file associato al file descriptor \param{dirfd}.
+
+Come esempio di funzione che utilizza solo questi due flag generici possiamo