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
\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
suoi vari campi in sez.~\ref{sec:sig_sigaction}, per quanto ci interessa qui
basta dire che al ritorno di \func{waitid} verranno avvalorati i seguenti
campi:
-\begin{basedescript}{\desclabelwidth{2.0cm}}
+\begin{basedescript}{\desclabelwidth{1.8cm}}
\item[\var{si\_pid}] con il \ids{PID} del figlio.
\item[\var{si\_uid}] con l'\textsl{user-ID reale} (vedi
sez.~\ref{sec:proc_perms}) del figlio.
originari per quanto riguarda tutti gli altri controlli di accesso, così che
l'utente non possa inviare segnali al server NFS.
-Le due funzioni di sistema usate per cambiare questi identificatori sono
-\funcd{setfsuid} e \funcd{setfsgid}, ed ovviamente sono specifiche di Linux e
-non devono essere usate se si intendono scrivere programmi portabili; i loro
-prototipi sono:
+Le due funzioni di sistema usate appositamente per cambiare questi
+identificatori sono \funcd{setfsuid} e \funcd{setfsgid} ovviamente sono
+specifiche di Linux e non devono essere usate se si intendono scrivere
+programmi portabili; i loro prototipi sono:
\begin{funcproto}{
\fhead{sys/fsuid.h}
la priorità dinamica determinata dal valore di \textit{nice}, che deve essere
impostato con le funzioni viste in precedenza.
-Lo standard POSIX.1b prevede inoltre che l'intervallo dei valori delle
-priorità statiche possa essere ottenuto con le funzioni di sistema
+Lo standard POSIX.1b prevede che l'intervallo dei valori delle priorità
+statiche possa essere ottenuto con le funzioni di sistema
\funcd{sched\_get\_priority\_max} e \funcd{sched\_get\_priority\_min}, i cui
prototipi sono: