%% filedir.tex
%%
-%% Copyright (C) 2000-2016 Simone Piccardi. Permission is granted to
+%% Copyright (C) 2000-2018 Simone Piccardi. Permission is granted to
%% copy, distribute and/or modify this document under the terms of the GNU Free
%% Documentation License, Version 1.1 or any later version published by the
%% Free Software Foundation; with the Invariant Sections being "Un preambolo",
che lo compongono, detti anche \textit{mount flags}, devono essere impostati
con un OR aritmetico dei valori dalle costanti riportate nell'elenco seguente:
-\begin{basedescript}{\desclabelwidth{2.cm}\desclabelstyle{\nextlinelabel}}
+\begin{basedescript}{\desclabelwidth{1.9cm}\desclabelstyle{\nextlinelabel}}
\itindbeg{bind~mount}
\item[\constd{MS\_BIND}] Effettua un cosiddetto \textit{bind mount}, in cui è
possibile montare una directory di un filesystem in un'altra directory,
\textit{pathname} relativi all'interno del filesystem non possa fallire.
\item[\constd{MS\_NOATIME}] Viene disabilitato sul filesystem l'aggiornamento
- degli \textit{access time} (vedi sez.~\ref{sec:file_file_times}) per
- qualunque tipo di file. Dato che l'aggiornamento degli \textit{access time}
+ dell'\textit{access time} (vedi sez.~\ref{sec:file_file_times}) per
+ qualunque tipo di file. Dato che l'aggiornamento dell'\textit{access time}
è una funzionalità la cui utilità è spesso irrilevante ma comporta un costo
elevato visto che una qualunque lettura comporta comunque una scrittura su
disco,\footnote{e questo ad esempio ha conseguenze molto pesanti nell'uso
di accedere anche a risorse cui non dovrebbe.
\item[\constd{MS\_NODIRATIME}] Viene disabilitato sul filesystem
- l'aggiornamento degli \textit{access time} (vedi
- sez.~\ref{sec:file_file_times}), ma soltanto per le directory. Costituisce
+ l'aggiornamento dell'\textit{access time} (vedi
+ sez.~\ref{sec:file_file_times}) ma soltanto per le directory. Costituisce
una alternativa per \const{MS\_NOATIME}, che elimina l'informazione per le
directory, che in pratica che non viene mai utilizzata, mantenendola per i
file in cui invece ha un impiego, sia pur limitato.
% TODO trattare l'opzione \texttt{lazytime} introdotta con il kernel 4.0,
% vedi http://lwn.net/Articles/621046/
-\item[\constd{MS\_RELATIME}] Indica di effettuare l'aggiornamento degli
- \textit{access time} sul filesystem soltanto quando questo risulti
+\item[\constd{MS\_RELATIME}] Indica di effettuare l'aggiornamento
+ dell'\textit{access time} sul filesystem soltanto quando questo risulti
antecedente il valore corrente del \textit{modification time} o del
\textit{change time} (per i tempi dei file si veda
sez.~\ref{sec:file_file_times}). L'opzione è disponibile a partire dal
\end{itemize*}
+% 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)
\subsection{I tipi di file}
\footnotesize
\begin{tabular}[c]{|l|c|c|c|c|c|c|l|}
\hline
- \multicolumn{1}{|p{2.8cm}|}{\centering{\vspace{6pt}\textbf{Funzione}}} &
+ \multicolumn{1}{|p{2.3cm}|}{\centering{\vspace{6pt}\textbf{Funzione}}} &
\multicolumn{3}{|p{3.2cm}|}{\centering{
\textbf{File o directory del riferimento}}}&
\multicolumn{3}{|p{3.2cm}|}{\centering{
\textbf{Directory contenente il riferimento}}}
- &\multicolumn{1}{|p{3.4cm}|}{\centering{\vspace{6pt}\textbf{Note}}} \\
+ &\multicolumn{1}{|p{3.cm}|}{\centering{\vspace{6pt}\textbf{Note}}} \\
\cline{2-7}
\cline{2-7}
- \multicolumn{1}{|p{2.8cm}|}{}
+ \multicolumn{1}{|p{2.3cm}|}{}
&\multicolumn{1}{|p{.8cm}|}{\centering{\textsl{(a)}}}
&\multicolumn{1}{|p{.8cm}|}{\centering{\textsl{(m)}}}
&\multicolumn{1}{|p{.8cm}|}{\centering{\textsl{(c)}}}
se esegue \func{rmdir}\\
\func{rename}
& -- & -- &$\bullet$& -- &$\bullet$&$\bullet$&
- per entrambi gli argomenti\\
+ per ambo gli argomenti\\
\func{rmdir}
& -- & -- & -- & -- &$\bullet$&$\bullet$&\\
- \func{truncate}, \func{ftruncate}
+ \func{truncate}
+ & -- &$\bullet$&$\bullet$& -- & -- & -- &\\
+ \func{ftruncate}
& -- &$\bullet$&$\bullet$& -- & -- & -- &\\
\func{unlink}
& -- & -- &$\bullet$& -- &$\bullet$&$\bullet$&\\
esplicitamente l'uso della suddetta libreria invocando il compilatore con
l'opzione \texttt{-lattr}.
-Per poter leggere gli attributi estesi sono disponibili tre diverse funzioni
-di sistema, \funcd{getxattr}, \funcd{lgetxattr} e \funcd{fgetxattr}, che
+Per leggere gli attributi estesi sono disponibili tre diverse funzioni di
+sistema, \funcd{getxattr}, \funcd{lgetxattr} e \funcd{fgetxattr}, che
consentono rispettivamente di richiedere gli attributi relativi a un file, a
un collegamento simbolico e ad un file descriptor; i rispettivi prototipi
sono:
prima funzione si potrà poi ripetere la lettura per ottenere i puntatori alle
singole voci successive alla prima.
-Una volta ottenuti detti puntatori si potrà operare sui contenuti delle singole
-voci; con le funzioni \funcm{acl\_get\_tag\_type}, \funcm{acl\_get\_qualifier},
-\funcm{acl\_get\_permset} si potranno leggere rispettivamente tipo,
-qualificatore e permessi mentre con le corrispondente funzioni
+Una volta ottenuti detti puntatori si potrà operare sui contenuti delle
+singole voci: con le funzioni \funcm{acl\_get\_tag\_type},
+\funcm{acl\_get\_qualifier}, \funcm{acl\_get\_permset} si potranno leggere
+rispettivamente tipo, qualificatore e permessi, mentre con le corrispondenti
\funcm{acl\_set\_tag\_type}, \funcm{acl\_set\_qualifier},
-\funcm{acl\_set\_permset} si possono impostare i valori; in entrambi i casi
-vengono utilizzati tipi di dato ad hoc.\footnote{descritti nelle singole
- pagine di manuale.} Si possono poi copiare i valori di una voce da una ACL
-ad un altra con \funcm{acl\_copy\_entry} o eliminare una voce da una ACL con
+\funcm{acl\_set\_permset} si potranno impostare i valori; in entrambi i casi
+vengono utilizzati tipi di dato ad hoc, descritti nelle pagine di manuale. Si
+possono poi copiare i valori di una voce da una ACL ad un altra con
+\funcm{acl\_copy\_entry} o eliminare una voce da una ACL con
\funcm{acl\_delete\_entry} e verificarne la validità prima di usarla con
\funcm{acl\_valid} o \funcm{acl\_check}.
si è distribuito il programma \texttt{mygetfacl.c}, che consente di leggere le
ACL di un file, passato come argomento.
-\begin{figure}[!htbp]
+\begin{figure}[!htb]
\footnotesize \centering
\begin{minipage}[c]{\codesamplewidth}
\includecodesample{listati/mygetfacl.c}
\begin{figure}[!htb]
\footnotesize \centering
- \begin{minipage}[c]{0.9\textwidth}
+ \begin{minipage}[c]{0.95\textwidth}
\includestruct{listati/dqblk.h}
\end{minipage}
\normalsize