X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=filedir.tex;h=b15c5f098b3216c6b5539cb3aea5447d3b19a12f;hp=8bb46d76e4553405af3ca644ea6a3b79de2476df;hb=85e7b3ed7aafdb66a7feda150f68649915a5e85d;hpb=b34e359f722d553bc8e9a6808e0f3a48b57f052a diff --git a/filedir.tex b/filedir.tex index 8bb46d7..b15c5f0 100644 --- a/filedir.tex +++ b/filedir.tex @@ -1541,9 +1541,10 @@ su un file, su un link simbolico e su un file descriptor. La struttura \struct{stat} usata da queste funzioni è definita nell'header \file{sys/stat.h} e in generale dipende dall'implementazione; la versione usata da Linux è mostrata in fig.~\ref{fig:file_stat_struct}, così come -riportata dalla pagina di manuale di \func{stat} (in realtà la definizione +riportata dalla pagina di manuale di \func{stat}; in realtà la definizione effettivamente usata nel kernel dipende dall'architettura e ha altri campi -riservati per estensioni come tempi più precisi, o per il padding dei campi). +riservati per estensioni come tempi dei file più precisi (vedi +sez.~\ref{sec:file_file_times}), o per il padding dei campi. \begin{figure}[!htb] \footnotesize @@ -1561,8 +1562,6 @@ Si noti come i vari membri della struttura siano specificati come tipi primitivi del sistema (di quelli definiti in tab.~\ref{tab:intro_primitive_types}, e dichiarati in \file{sys/types.h}). -% TODO: aggiornare con i cambiamenti ai tempi fatti con il 2.6 - \subsection{I tipi di file} \label{sec:file_types} @@ -1940,6 +1939,17 @@ file di dispositivo, scrivendo direttamente sul disco senza passare attraverso il filesystem, ma ovviamente in questo modo la cosa è molto più complicata da realizzare. +Infine a partire dal kernel 2.6 la risoluzione dei tempi dei file, che nei +campi di tab.~\ref{tab:file_file_times} è espressa in secondi, è stata +portata ai nanosecondi per la gran parte dei filesystem. La ulteriore +informazione può essere acceduta attraverso altri campi; se si sono definite +le macro \macro{\_BSD\_SOURCE} o \macro{\_SVID\_SOURCE} questi sono +\var{st\_atim.tv\_nsec}, \var{st\_mtim.tv\_nsec} e \var{st\_ctim.tv\_nsec} se +queste non sono definite, \var{st\_atimensec}, \var{st\_mtimensec} e +\var{st\_mtimensec}. Qualora il supporto per questa maggior precisione sia +assente questi campi aggiuntivi saranno nulli. + +%TODO documentare utimes \section{Il controllo di accesso ai file}