Iniziato a scrivere la roba di stat
authorSimone Piccardi <piccardi@gnulinux.it>
Mon, 11 Jun 2001 16:26:14 +0000 (16:26 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Mon, 11 Jun 2001 16:26:14 +0000 (16:26 +0000)
filedir.tex

index 8f64ac0fa656e4ab8e49d2a4cfc241ec00724d5e..b16e2dc7b549f2f01a4d1276785025da5ed6fb07 100644 (file)
@@ -3,16 +3,12 @@
 
 In questo capitolo tratteremo in dettaglio le varie caratteristiche di files e
 directories, ed in particolare approfondiremo i dettagli su come è organizzata
-la struttura dei files in un sistema unix; esamineremo poi come è strutturato
-il sistema base di protezioni e controllo di accesso ai files, e tutta
+la struttura dei files in un sistema unix, esamineremo come è strutturato il
+sistema base di protezioni e controllo di accesso ai files, e tutta
 l'interfaccia che permette la manipolazione dei vari attributi di files e
 directories. Tutto quello che riguarda invece la manipolazione dei contenuti è
 lasciato ai capitoli successivi.
 
-Le funzioni che esamineremo in questo capitolo pertanto sono quelle che
-permettono di creare e cancellare o leggere le directories, rinominare o
-cancellare i files ed esaminare o cambiare i loro attributi.
-
 
 \section{L'organizzazione di files e directories}
 \label{sec:filedir_org}
@@ -356,7 +352,8 @@ nuovo nome dopo che il vecchio 
   \item \texttt{ENOENT} Uno dei componenti del pathname non esiste o è un link
     simbolico spezzato.
   \item \texttt{ENOTDIR} Uno dei componenti del pathname non è una directory.
-  \item \texttt{ENOMEM} Memoria insufficiente nel kernel.
+  \item \texttt{ENOMEM} il kernel non ha a disposizione memoria sufficiente a
+    completare l'operazione. 
   \item \texttt{ELOOP} Ci sono troppi link simbolici nella risoluzione del
     pathname.
   \item \texttt{EISDIR} 
@@ -430,7 +427,6 @@ questa funzione 
   \texttt{buff} di dimensione \texttt{size}. Non chiude la stringa con un
   carattere nullo e la tronca a \texttt{size} nel caso il buffer sia troppo
   piccolo per contenerla.
-
   
   La funzione restituisce il numero di caratteri letti dentro \texttt{buff} o
   -1 per un errore, in caso di errore. La variabile \texttt{errno} viene
@@ -448,6 +444,57 @@ questa funzione 
 \end{prototype}
 
 
+\section{La manipolazione delle caratteristiche dei files}
+\label{sec:filedir_infos}
+
+Come spiegato in \secref{sec:filedir_file_handling} tutte le informazioni
+generali relative alle caratteristiche di ciascun file sono mantenute
+nell'inode. Vedremo in questa sezione come sia possibile accedervi usando la
+funzione \texttt{stat} ed esamineremo alcune funzioni utilizzabili per
+manipolare una parte di questa informazione. Tutto quello che invece riguarda
+il meccanismo di controllo di accesso ad i file e le relative funzioni di
+manipolazione sarà invece esaminanto in \secref{sec:filedir_access_control}.
+
+
+\subsection{Le funzioni \texttt{stat}, \texttt{fstat} e \texttt{lstat}}
+\label{sec:filedir_stat}
+
+La lettura delle informazioni relative ai file è fatta attraverso la famiglia
+delle funzioni \texttt{stat}, questa è la funzione che il comando \texttt{ls}
+usa per poter stampare tutti i dati dei files; il prototipo della funzione è
+il seguente;
+\begin{prototype}{sys/stat.h}
+{int stat(const char *file_name, struct stat *buf)}
+  
+  La funzione restituisce zero in caso di successo e -1 per un errore, in caso
+  di errore \texttt{errno} viene settato ai valori:
+  \begin{errlist}
+  \item \texttt{EACCESS} Non c'è il permesso di accedere al file.
+  \item \texttt{ENOTDIR} Una componente del pathname non è una directory.
+  \item \texttt{EMLOOP} Ci sono troppi link simbolici nel pathname.
+  \item \texttt{EFAULT} I puntatori usati sono fuori dallo spazio di indirizzi
+    del processo.
+  \item \texttt{ENOMEM} il kernel non ha a disposizione memoria sufficiente a
+    completare l'operazione. 
+  \item \texttt{ENAMETOOLONG} Il filename è troppo lungo.
+  \end{errlist}
+\end{prototype}
+
+\subsection{I tipi di file}
+\label{sec:filedir_file_types}
+
+\subsection{La dimensione dei file}
+\label{sec:filedir_file_size}
+
+\subsection{I tempi dei file}
+\label{sec:filedir_file_times}
+
+\subsection{La funzione \texttt{utime}}
+\label{sec:filedir_utime}
+
+
+
+
 \section{Il controllo di accesso ai file}
 \label{sec:filedir_access_control}
 
@@ -474,7 +521,6 @@ questa funzione 
 \label{sec:filedir_chown}
 
 
-
 \section{La manipolazione delle directories}
 \label{sec:filedir_dir_handling}
 
@@ -610,26 +656,6 @@ per cambiare directory di lavoro.
 \end{prototype}
 
 
-\section{La manipolazione delle caratteristiche dei files}
-\label{sec:filedir_infos}
-
-
-\subsection{Le funzioni \texttt{stat}, \texttt{fstat} e \texttt{lstat}}
-\label{sec:filedir_stat}
-
-\subsection{I tipi di file}
-\label{sec:filedir_file_types}
-
-\subsection{La dimensione dei file}
-\label{sec:filedir_file_size}
-
-\subsection{I tempi dei file}
-\label{sec:filedir_file_times}
-
-\subsection{La funzione \texttt{utime}}
-\label{sec:filedir_utime}
-
-
 
 
 %La struttura fondamentale che contiene i dati essenziali relativi ai file è il