mount}. Lo scopo dell'opzione è ottenere che tutti i successivi
\textit{bind mount} ottenuti da un \textit{mount point} così marcato siano
di tipo \textit{shared} e vengano inseriti nello stesso \textit{mount peer
- group} in modo da ``\textsl{condivere}'' ogni ulteriore operazione di
+ group} in modo da ``\textsl{condividere}'' ogni ulteriore operazione di
montaggio o smontaggio. Con questa opzione le operazioni di montaggio e
smontaggio effettuate al di sotto di uno \textit{shared mount} vengono
automaticamente ``\textsl{propagate}'' a tutti gli altri membri del
\end{Console}
%$
con un errore che può sembrare sbagliato, dato che \cmd{ls} ci ha mostrato in
-prcedenza l'esistenza di \file{symlink}. Se invece andassimo a scrivere su
+precedenza l'esistenza di \file{symlink}. Se invece andassimo a scrivere su
\file{symlink}, l'effetto sarebbe quello di ottenere la creazione di
\file{/tmp/tmp\_file} (che a quel punto verrebbe creato) senza errori.
Si tenga anche presente che a partire dal kernel 3.16, se si abilita la
funzionalità dei \textit{protected symlinks} (attiva di default in tutte le
distribuzioni più recenti) la risoluzione dei nomi attraverso un collegamento
-simbolico può fallire per una serie di restrizione di sicurezza agguntive
+simbolico può fallire per una serie di restrizione di sicurezza aggiuntive
imposte dal meccanismo (si consulti sez.~\ref{sec:procadv_security_misc} per i
dettagli del meccanismo).
che contiene \param{pathname} o quello di attraversamento per una delle
directory superiori.
\item[\errcode{EBUSY}] \param{pathname} non può essere rimosso perché è in
- uso da parte del sistema (in particolare per i cosidetti \textit{silly
+ uso da parte del sistema (in particolare per i cosiddetti \textit{silly
renames} di NFS).
\item[\errcode{EISDIR}] \param{pathname} si riferisce ad una
directory.
\end{funcproto}
La funzione utilizza la funzione \func{unlink} per cancellare i file (e si
-applica anche a link simbolici, socket, \textit{fifo} e file di dispostivo) e
+applica anche a link simbolici, socket, \textit{fifo} e file di dispositivo) e
la funzione \func{rmdir} (vedi sez.~\ref{sec:file_dir_creat_rem}) per
cancellare le directory.\footnote{questo vale usando la \acr{glibc}; nella
\acr{libc4} e nella \acr{libc5} la funzione \func{remove} era un semplice
alias alla funzione \func{unlink} e quindi non poteva essere usata per le
- directory.} Si tenga presente che per alcune limitazioni del protocollo
+ directory.} Si tenga presente che, per alcune limitazioni del protocollo
NFS, utilizzare questa funzione su file che usano questo filesystem di rete
può comportare la scomparsa di file ancora in uso.
in ``\file{.}'' e ``\file{..}'' anche se validi in altri contesti, causeranno
il fallimento della funzione.
+Inoltre per eseguire la cancellazione, oltre ad essere vuota, occorre anche
+che la directory non sia utilizzata, questo vuol dire anche che non deve
+essere la directory di lavoro (vedi sez.~\ref{sec:file_work_dir}) o la
+directory radice (vedi sez.~\ref{sec:file_chroot}) di nessun processo, od
+essere utilizzata come \textit{mount point}.
+
Se la directory cancellata risultasse aperta in qualche processo per una
lettura dei suoi contenuti (vedi sez.~\ref{sec:file_dir_read}), pur
scomparendo dal filesystem e non essendo più possibile accedervi o crearvi
\func{versionsort}, che ordina i nomi tenendo conto del numero di versione,
cioè qualcosa per cui \texttt{file10} viene comunque dopo \texttt{file4}.
-\begin{figure}[!htbp]
+\begin{figure}[!htb]
\footnotesize \centering
\begin{minipage}[c]{\codesamplewidth}
\includecodesample{listati/my_ls.c}
nome del file e la dimensione riportata in \var{data}.
Dato che la funzione verrà chiamata all'interno di \myfunc{dir\_scan} per ogni
-voce presente questo è sufficiente a stampare la lista completa dei file e
+voce presente, questo è sufficiente a stampare la lista completa dei file e
delle relative dimensioni. Si noti infine come si restituisca sempre 0 come
valore di ritorno per indicare una esecuzione senza errori.
-\begin{figure}[!htbp]
+\begin{figure}[!htb]
\footnotesize \centering
\begin{minipage}[c]{\codesamplewidth}
\includecodesample{listati/dir_scan.c}
caso sarà \code{do\_ls}), ritornando con un codice di errore (\texttt{\small
28}) qualora questa presenti una anomalia, identificata da un codice di
ritorno negativo. Una volta terminato il ciclo la funzione si conclude con la
-chiusura (\texttt{\small 32}) dello \textit{stream}\footnote{nel nostro caso,
+chiusura (\texttt{\small 31}) dello \textit{stream}\footnote{nel nostro caso,
uscendo subito dopo la chiamata, questo non servirebbe, in generale però
l'operazione è necessaria, dato che la funzione può essere invocata molte
volte all'interno dello stesso processo, per cui non chiudere i
\index{directory~di~lavoro|(}
Come accennato in sez.~\ref{sec:proc_fork} a ciascun processo è associata una
-directory nel filesystem,\footnote{questa viene mantenuta all'interno dei dati
- della sua \kstruct{task\_struct} (vedi fig.~\ref{fig:proc_task_struct}), più
- precisamente nel campo \texttt{pwd} della sotto-struttura
- \kstruct{fs\_struct}.} che è chiamata \textsl{directory corrente} o
-\textsl{directory di lavoro} (in inglese \textit{current working directory}).
-La directory di lavoro è quella da cui si parte quando un \textit{pathname} è
-espresso in forma relativa, dove il ``\textsl{relativa}'' fa riferimento
-appunto a questa directory.
+directory nell'albero dei file,\footnote{questa viene mantenuta all'interno
+ dei dati della sua \kstruct{task\_struct} (vedi
+ fig.~\ref{fig:proc_task_struct}), più precisamente nel campo \texttt{pwd}
+ della sotto-struttura \kstruct{fs\_struct}.} che è chiamata
+\textsl{directory corrente} o \textsl{directory di lavoro} (in inglese
+\textit{current working directory}). La directory di lavoro è quella da cui
+si parte quando un \textit{pathname} è espresso in forma relativa, dove il
+``\textsl{relativa}'' fa riferimento appunto a questa directory.
Quando un utente effettua il login, questa directory viene impostata alla
\textit{home directory} del suo account. Il comando \cmd{cd} della shell
% LocalWords: setmntent getmntent addmntent endmntent hasmntopt such offsetof
% LocalWords: member scan attack EOVERFLOW BITS blkcnt rdev FDCWD functions
% LocalWords: faccessat grpid lacl AppArmor capsetp mygetfacl table Tb MSK
-% LocalWords: LAZYTIME submount peer
+% LocalWords: LAZYTIME submount peer protected hardlink symlinks silly
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "gapil"
%%% End:
+% LocalWords: renames