X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=fileio.tex;h=4b364ecba332b1e0520d69bc00f266e6300ccedb;hp=80b5c5430aa1f1fdd0031ce03ec429a8fe1c868f;hb=f486510bed043527644e38f161d1bf69e09039e9;hpb=ae7bf994013ffbf4f5ef1d5a38a18033593e3e9f diff --git a/fileio.tex b/fileio.tex index 80b5c54..4b364ec 100644 --- a/fileio.tex +++ b/fileio.tex @@ -206,9 +206,9 @@ Si ritrova quindi anche con le voci della \textit{file table} una situazione analoga di quella delle voci di una directory, con la possibilità di avere più voci che fanno riferimento allo stesso \textit{inode}. L'analogia è in realtà molto stretta perché quando si cancella un file, il kernel verifica anche che -non resti nessun riferimento in una una qualunque voce della \textit{file - table} prima di liberare le risorse ad esso associate e disallocare il -relativo \textit{inode}. +non resti nessun riferimento in una qualunque voce della \textit{file table} +prima di liberare le risorse ad esso associate e disallocare il relativo +\textit{inode}. Nelle vecchie versioni di Unix (ed anche in Linux fino al kernel 2.0.x) il numero di file aperti era anche soggetto ad un limite massimo dato dalle @@ -590,7 +590,7 @@ di essi possono anche essere modificati tramite questa funzione, con conseguente effetto sulle caratteristiche operative che controllano (torneremo sull'argomento in sez.~\ref{sec:file_fcntl_ioctl}). -Il flag \const{O\_ASYNC} (che, per per compatibilità con BSD, si può indicare +Il flag \const{O\_ASYNC} (che, per compatibilità con BSD, si può indicare anche con la costante \constd{FASYNC}) è definito come possibile valore per \func{open}, ma per un bug dell'implementazione,\footnote{segnalato come ancora presente nella pagina di manuale almeno fino al Settembre 2011.} non @@ -886,8 +886,8 @@ Questo comporta che in generale, fintanto che lo si è scritto sequenzialmente, la dimensione di un file sarà più o meno corrispondente alla quantità di spazio disco da esso occupato, ma esistono dei casi, come questo in cui ci si sposta in una posizione oltre la fine corrente del file, o come quello -accennato in in sez.~\ref{sec:file_file_size} in cui si estende la dimensione -di un file con una \func{truncate}, in cui in sostanza si modifica il valore +accennato in sez.~\ref{sec:file_file_size} in cui si estende la dimensione di +un file con una \func{truncate}, in cui in sostanza si modifica il valore della dimensione di \var{st\_size} senza allocare spazio su disco. Questo consente di creare inizialmente file di dimensioni anche molto grandi, senza dover occupare da subito dello spazio disco che in realtà sarebbe @@ -1694,6 +1694,13 @@ tab.~\ref{tab:file_atfunc_corr}, oltre al nuovo argomento iniziale, è prevista anche l'aggiunta di un ulteriore argomento finale, \param{flags}. + + +% TODO trattare fstatat e con essa +% TODO trattare anche statx, aggiunta con il kernel 4.11 (vedi +% https://lwn.net/Articles/707602/ e +% https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a528d35e8bfcc521d7cb70aaf03e1bd296c8493f) + % TODO manca prototipo di linkat, verificare se metterlo o metter menzione % altre modifiche al riguardo nel 3.11 (AT_EMPTY_PATH?) vedi % http://lwn.net/Articles/562488/ @@ -2215,7 +2222,7 @@ il nome indicato nel precedente prototipo), è riportata di seguito: modifica è opportuno rileggere la nuova dimensione con \const{F\_GETPIPE\_SZ}. I processi non privilegiati\footnote{per la precisione occorre la capacità \const{CAP\_SYS\_RESOURCE}.} non possono - impostare un valore valore superiore a quello indicato da + impostare un valore superiore a quello indicato da \sysctlfiled{fs/pipe-size-max}. Il comando è specifico di Linux, è disponibile solo a partire dal kernel 2.6.35, ed è utilizzabile solo se si è definita la macro \macro{\_GNU\_SOURCE}. @@ -2783,7 +2790,7 @@ sez.~\ref{sec:proc_conclusion}). Una delle caratteristiche più utili dell'interfaccia degli \textit{stream} è la ricchezza delle funzioni disponibili per le operazioni di lettura e -scrittura sui file. Sono infatti previste ben tre diverse modalità modalità di +scrittura sui file. Sono infatti previste ben tre diverse modalità di input/output non formattato: \begin{itemize} \item\textsl{binario} in cui si leggono e scrivono blocchi di dati di