X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=fileunix.tex;h=a36652d429b1a8a38295c7522b8833a220e21aef;hp=bd3ed091fa27e1b6f9a2b66de914992db8be7985;hb=7b2cb0e324ea5531d490add25c6ffb2097f67099;hpb=52f9927779abf41607e5f7741a9aa978ac23d6e1 diff --git a/fileunix.tex b/fileunix.tex index bd3ed09..a36652d 100644 --- a/fileunix.tex +++ b/fileunix.tex @@ -487,11 +487,12 @@ essersi spostata, ma noi scriveremo alla posizione impostata in precedenza. Non tutti i file supportano la capacità di eseguire una \func{lseek}, in questo caso la funzione ritorna l'errore \macro{EPIPE}. Questo, oltre che per i tre casi citati nel prototipo, vale anche per tutti quei dispositivi che non -supportano questa funzione, come ad esempio per le \acr{tty}.\footnote{altri - sistemi, usando \macro{SEEK\_SET}, in questo caso ritornano il numero di - caratteri che vi sono stati scritti.} Lo standard POSIX però non specifica -niente al proposito. Infine alcuni device, ad esempio \file{/dev/null}, non -causano un errore ma restituiscono un valore indefinito. +supportano questa funzione, come ad esempio per i file di +terminale.\footnote{altri sistemi, usando \macro{SEEK\_SET}, in questo caso + ritornano il numero di caratteri che vi sono stati scritti.} Lo standard +POSIX però non specifica niente al proposito. Infine alcuni file speciali, ad +esempio \file{/dev/null}, non causano un errore ma restituiscono un valore +indefinito. \subsection{La funzione \func{read}} @@ -1004,21 +1005,20 @@ valori nella terza sezione di \tabref{tab:file_open_flags}.\footnote{la pagina di manuale riporta come impostabili solo \macro{O\_APPEND}, \macro{O\_NONBLOCK} e \macro{O\_ASYNC}.} -\item[\macro{F\_GETLK}] se un file lock è attivo restituisce nella struttura - \param{lock} la struttura \type{flock} che impedisce l'acquisizione del - blocco, altrimenti imposta il campo \var{l\_type} a \macro{F\_UNLCK} (per i - dettagli sul \textit{file locking} vedi \secref{sec:file_locking}). -\item[\macro{F\_SETLK}] richiede il file lock specificato da \param{lock} se - \var{l\_type} è \macro{F\_RDLCK} o \macro{F\_WRLLCK} o lo rilascia se - \var{l\_type} è \macro{F\_UNLCK}. Se il lock è tenuto da qualcun'altro - ritorna immediatamente restituendo -1 e imposta \var{errno} a \macro{EACCES} - o \macro{EAGAIN} (per i dettagli sul \textit{file locking} vedi - \secref{sec:file_locking}). +\item[\macro{F\_GETLK}] richiede un controllo sul file lock specificato da + \param{lock}, sovrascrivendo la struttura da esso puntata con il risultato + (questa funzionalità è trattata in dettaglio in + \secref{sec:file_posix_lock}). +\item[\macro{F\_SETLK}] richiede o rilascia un file lock a seconda di quanto + specificato nella struttura puntata da \param{lock}. Se il lock è tenuto da + qualcun'altro ritorna immediatamente restituendo -1 e imposta \var{errno} a + \macro{EACCES} o \macro{EAGAIN} (questa funzionalità è trattata in dettaglio + in \secref{sec:file_posix_lock}). \item[\macro{F\_SETLKW}] identica a \macro{F\_SETLK} eccetto per il fatto che la funzione non ritorna subito ma attende che il blocco sia rilasciato. Se l'attesa viene interrotta da un segnale la funzione restituisce -1 e imposta - \var{errno} a \macro{EINTR} (per i dettagli sul \textit{file locking} vedi - \secref{sec:file_locking}). + \var{errno} a \macro{EINTR} (questa funzionalità è trattata in dettaglio in + \secref{sec:file_posix_lock}). \item[\macro{F\_GETOWN}] restituisce il \acr{pid} del processo o il process group che è preposto alla ricezione dei segnali \macro{SIGIO} e \macro{SIGURG} per gli eventi associati al file descriptor \var{fd}. Il