\textbf{Flag} & \textbf{Descrizione} \\
\hline
\hline % modailtà di accesso
- \macro{O_RDONLY} & apre il file in sola lettura\\
- \macro{O_WRONLY} & apre il file in sola scrittura\\
- \macro{O_RDWR} & apre il file lettura/scrittura\\
+ \macro{O\_RDONLY} & apre il file in sola lettura\\
+ \macro{O\_WRONLY} & apre il file in sola scrittura\\
+ \macro{O\_RDWR} & apre il file lettura/scrittura\\
\hline % modalita di apertura
- \macro{O_CREAT} & \\
- \macro{O_EXCL} & \\
- \macro{O_NOCTTY} & \\
- \macro{O_NONBLOCK} & \\
- \macro{O_SHLOCK} & \\
- \macro{O_EXLOCK} & \\
- \macro{O_TRUNC} & \\
- \macro{O_NOFOLLOW} & \\
- \macro{O_DIRECTORY} & \\
- \macro{O_LARGEFILE} & \\
+ \macro{O\_CREAT} & Se il file non esiste verrà creato, con le regole di
+ titolarità del file viste in \secref{sec:file_ownership}. \\
+ \macro{O\_EXCL} & usato in congiunzione con \macro{O\_CREAT} fa sì che
+ l'esistenza del file diventi un errore\footnote{la man page di \func{open}
+ segnala che questa opzione è difettosa su NFS, e che i programmi che la
+ usano per stabilire un file di lock possono incorrere in una race
+ condition. Si consiglia come alternativa di usare un file con un nome
+ univoco e la funzione \func{link} per verificarne l'esistenza.} che fa
+ fallire \func{open} con \macro{EEXIST}.\\
+ \macro{O\_NOCTTY} & Se \var{pathname} si riferisce ad un device di
+ terminale, questo non diventerà il terminale di controllo, anche se il
+ processo non ne ha ancora uno (si veda \secref{sec:sess_xxx}).\\
+ \macro{O\_SHLOCK} & \\
+ \macro{O\_EXLOCK} & \\
+ \macro{O\_TRUNC} & \\
+ \macro{O\_NOFOLLOW} & \\
+ \macro{O\_DIRECTORY} & \\
+ \macro{O\_LARGEFILE} & \\
\hline % modalità di operazione
- \macro{O_APPEND} & \\
- \macro{O_NONBLOCK} & \\
- \macro{O_NDELAY} & sinonimo di \macro{O_NONBLOCK}\\
- \macro{O_ASYNC} & \\
- \macro{O_FSYNC} & \\
- \macro{O_SYNC} & \\
- \macro{O_NOATIME} & \\
+ \macro{O\_APPEND} & \\
+ \macro{O\_NONBLOCK} & Apre il file in modalità non bloccante, questo
+ comporta che \func{open} ritorna immediatamente anche nei casi in cui si
+ sarebbe bloccata. inoltre tutte le operazioni di I/O successive restano
+ in modalità non bloccante, il che significa il fallimento di una
+ \func{read} in assenza di dati da leggere e quello di una \func{write} in
+ caso di impossibilità di scrivere immediatamente. \\
+ \macro{O\_NDELAY} & sinonimo di \macro{O\_NONBLOCK}\\
+ \macro{O\_ASYNC} & \\
+ \macro{O\_FSYNC} & \\
+ \macro{O\_SYNC} & \\
+ \macro{O\_NOATIME} & \\
\hline
\end{tabular}
\caption{Costanti che identificano i vari flag di stato del file specificati