X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=fileunix.tex;h=077c659981f1900dbfda561dc88cd97d34adceb7;hp=95d27afda8f56b4f02831a705daf1b7a017634da;hb=23010d9e9a5dd36da44a8a2a89eb8bd95cb18dfa;hpb=5638dceb842da9dff14b0c08bcc0e4e65fb79c44 diff --git a/fileunix.tex b/fileunix.tex index 95d27af..077c659 100644 --- a/fileunix.tex +++ b/fileunix.tex @@ -252,28 +252,41 @@ nel campo \var{f\_flags} di \var{file}. \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