X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=filedir.tex;h=c3513a636b95328cb0ec7ea43d1809dbf57e5578;hp=b985da195568042040b81c218dc8ef698f2cae92;hb=b1721df081b3962143b1ef447963ac6a1f45e403;hpb=608bbf38416013dc331e1ef2e5dfe01855b6158b diff --git a/filedir.tex b/filedir.tex index b985da1..c3513a6 100644 --- a/filedir.tex +++ b/filedir.tex @@ -5,7 +5,7 @@ In questo capitolo tratteremo in dettaglio le modalit file e directory, iniziando dalle funzioni di libreria che si usano per copiarli, spostarli e cambiarne i nomi. Esamineremo poi l'interfaccia che permette la manipolazione dei vari attributi di file e directory ed alla -finefaremo una trattazione dettagliata su come è strutturato il sistema base +fine faremo una trattazione dettagliata su come è strutturato il sistema base di protezioni e controllo di accesso ai file e sulle funzioni che ne permettono la gestione. Tutto quello che riguarda invece la manipolazione del contenuto dei file è lasciato ai capitoli successivi. @@ -69,7 +69,7 @@ principali, come risultano dalla man page, sono le seguenti: già. \item \macro{EMLINK} ci sono troppi link al file \var{oldpath} (il numero massimo è specificato dalla variabile \macro{LINK\_MAX}, vedi - \secref{sec:xxx_limits}). + \secref{sec:sys_limits}). \end{errlist} ed inoltre \macro{EACCES}, \macro{ENAMETOOLONG}, \macro{ENOTDIR}, \macro{EFAULT}, \macro{ENOMEM}, \macro{EROFS}, \macro{ELOOP}, @@ -142,9 +142,9 @@ restrizioni Una delle caratteristiche di queste funzioni è che la creazione/rimozione della nome dalla directory e l'incremento/decremento del numero di riferimenti -nell'inode deve essere una operazione atomica (cioè non interrompibile da -altri processi), per questo entrambe queste funzioni sono realizzate tramite -una singola system call. +nell'inode deve essere una operazione atomica (si veda +\secref{cha:proc_atom_oper}), per questo entrambe queste funzioni sono +realizzate tramite una singola system call. Si ricordi infine che il file non viene eliminato dal disco fintanto che tutti i riferimenti ad esso sono stati cancellati, solo quando il \textit{link @@ -378,7 +378,7 @@ stringa con un carattere nullo e la tronca alla dimensione specificata da \begin{figure}[htb] \centering - \includegraphics[width=5cm]{img/link_loop.eps} + \includegraphics[width=5cm]{img/link_loop} \caption{Esempio di loop nel filesystem creato con un link simbolico.} \label{fig:file_link_loop} \end{figure} @@ -574,7 +574,7 @@ Di questa funzione esiste una versione \func{char * getwd(char * buffer)} fatta per compatibilità all'indietro con BSD, che non consente di specificare la dimensione del buffer; esso deve essere allocato in precedenza ed avere una dimensione superiore a \macro{PATH\_MAX} (di solito 256 byte, vedi -\secref{sec:xxx_limits}); il problema è che in Linux non esiste una dimensione +\secref{sec:sys_limits}); il problema è che in Linux non esiste una dimensione superiore per un pathname, per cui non è detto che il buffer sia sufficiente a contenere il nome del file, e questa è la ragione principale per cui questa funzione è deprecata. @@ -1440,7 +1440,6 @@ accedere ad un certo file. Per cambiare i permessi di un file il sistema mette ad disposizione due funzioni, che operano rispettivamente su un filename e su un file descriptor, i loro prototipi sono: - \begin{functions} \headdecl{sys/types.h} \headdecl{sys/stat.h} @@ -1539,7 +1538,6 @@ privilegio. Oltre che dai valori indicati in sede di creazione, i permessi assegnati ai nuovi file sono controllati anche da una maschera di bit settata con la funzione \func{umask}, il cui prototipo è: - \begin{prototype}{stat.h} {mode\_t umask(mode\_t mask)} @@ -1576,7 +1574,6 @@ allora occorrer Come per i permessi, il sistema fornisce anche delle funzioni che permettano di cambiare utente e gruppo cui il file appartiene; le funzioni in questione sono tre e i loro prototipi sono i seguenti: - \begin{functions} \headdecl{sys/types.h} \headdecl{sys/stat.h}