X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=fileadv.tex;h=454396284aeb4eda50e21e3bc3db924ad9e84ccc;hp=0d6e2f08d1f3160ce34f94cd4b847d0ebc9526dd;hb=cd905cd37ac75847fdbfcc6fb4d2fd094dd808b7;hpb=5af27a7a0ed59f8684593f0c2b300b81576351b0 diff --git a/fileadv.tex b/fileadv.tex index 0d6e2f0..4543962 100644 --- a/fileadv.tex +++ b/fileadv.tex @@ -1315,10 +1315,21 @@ Il comportamento della funzione \label{tab:file_flock_operation} \end{table} + +Con \func{flock} il blocco è associato direttamente al file (cioè rispetto +allo schema di \secref{sec:file_fd} fa riferimento all'inode e non al file +descriptor); pertanto sia \func{dup} che \func{fork} non creano altre istanze +del blocco ma piuttosto degli ulteriori riferimenti allo stesso \textit{file + lock}. + La funzione blocca direttamente il file (cioè rispetto allo schema di -\secref{fig:file_stat_struct} fa riferimento all'inode, non al file -descriptor). Pertanto sia \func{dup} che \func{fork} non creano altre istanze -di un \textit{file lock}. +\secref{fig:file_stat_struct} fa riferimento alla struttura \var{file}, non al +file descriptor). Pertanto sia \func{dup} che \func{fork} non creano ulteriori +istanze di un \textit{file lock} quanto piuttosto degli ulteriori riferimenti +allo stesso \textit{file lock}. Questo comporta che un lock può essere rimosso +su uno qualunque dei file descriptor che fanno riferimento allo stesso file, +ed esso . + La seconda interfaccia per l'\textit{advisory locking} disponibile in Linux è quella standardizzata da POSIX, basata sulla funzione \func{fcntl}. Abbiamo