From 7e36fa5dcb6391f3a1a7fe4d8222a01d909eccd5 Mon Sep 17 00:00:00 2001 From: Simone Piccardi Date: Thu, 1 Nov 2001 22:53:56 +0000 Subject: [PATCH] altre correzione --- fileintro.tex | 4 ++-- fileunix.tex | 64 +++++++++++++++++++++++---------------------------- gapil.tex | 2 +- prochand.tex | 4 ++-- 4 files changed, 34 insertions(+), 40 deletions(-) diff --git a/fileintro.tex b/fileintro.tex index 7ed71e4..3125a73 100644 --- a/fileintro.tex +++ b/fileintro.tex @@ -87,7 +87,7 @@ directory; l'albero viene appunto creato inserendo directory in altre directory. Il nome completo di file generico è composto da una serie di nomi separati da -una \texttt{/} (in Linux più \texttt{/} consecutive sono considerate +una \file{/} (in Linux più \file{/} consecutive sono considerate equivalenti ad una sola). Il nome completo di un file viene usualmente chiamato \textit{pathname}, e anche se il manuale della glibc depreca questo nome (poiché genererebbe confusione, dato che con \textit{path} si indica @@ -104,7 +104,7 @@ precedente: ovviamente perch indicati come directory esistano e siano effettivamente directory, inoltre i permessi devono consentire l'accesso. -Se il pathname comincia per \texttt{/} la ricerca parte dalla directory radice +Se il pathname comincia per \file{/} la ricerca parte dalla directory radice del processo; questa, a meno di un \textit{chroot} (su cui torneremo in seguito, vedi \secref{sec:xxx_chroot}) è la stessa per tutti i processi ed equivale alla directory radice dell'albero (come descritto in diff --git a/fileunix.tex b/fileunix.tex index c63f475..ea28689 100644 --- a/fileunix.tex +++ b/fileunix.tex @@ -37,39 +37,33 @@ attivi nella cosiddetta \textit{process table} ed un elenco dei file aperti nella \textit{file table}. Ciascuna voce della \textit{process table}, che in Linux è costituita da una -struttura \var{task\_struct}, che contiene tutte le informazioni relative ad -ogni processo attivo nel sistema; fra queste c'è anche il puntatore ad una -ulteriore struttura \var{files\_struct} che contiene le informazioni su tutti -i file che il processo sta usando. +struttura \var{task\_struct}, contiene le informazioni relative ad ogni +processo attivo nel sistema; fra queste c'è anche il puntatore ad una +ulteriore struttura \var{files\_struct} in cui sono contenute le informazioni +relative a ogni file che il processo ha aperto, ed in particolare: +\begin{itemize} +\item i flag di close on esec +\item un puntatore alla struttura \var{file} nella \textit{file table} +\end{itemize} Ciascuna voce della \textit{file table}, che in Linux è costituita da una -struttura \var{file}, contiene informazioni ogni file aperto nel sistema. - - - -All'interno di ogni processo i file aperti sono identificati da un intero non -negativo, chiamato appunto \textit{file descriptors}; - - - -) che identifica il processo nei confronti del -kernel ogni processo mantiene una sezione (la \var{file_struct}, la cui -struttura è riportata in \nfig) - -ciascun processo porta -nella ha una tabella dei file aperti, in +struttura \var{file}, contiene le informazioni relative ad ogni file aperto +nel sistema, fra queste ci sono: +\begin{itemize} +\item lo stato del file (lettura, scrittura, append, etc.). +\item il valore della posizione corrente (l'\textit{offset}). +\item un puntatore alla dentry del file (da cui si accede all'inode). +\item un puntatore alla tabella delle operazioni del filesystem (vedi + \tabref{tab:file_file_operations}). +\end{itemize} +Le relazioni fra queste strutture sono riportate in \nfig; -Per ciascun file aperto nel sistema il kernel mantiene voce nella tabella dei -file; ciascuna voce di questa tabella contiene: -\begin{itemize} -\item lo stato del file (lettura, scrittura, append, etc.). -\item il valore della posizione corrente (l'\textit{offset}). -\item un puntatore al -\end{itemize} +All'interno di ogni processo i file aperti sono identificati da un intero non +negativo, chiamato appunto \textit{file descriptors}; @@ -88,22 +82,22 @@ funzioni fondamentali \func{open}, \func{read}, \func{write}, \func{lseek} e \func{close}; -\subsection{La funzione \texttt{open}} +\subsection{La funzione \func{open}} \label{sec:file_open} -\subsection{La funzione \texttt{creat}} +\subsection{La funzione \func{creat}} \label{sec:file_creat} -\subsection{La funzione \texttt{close}} +\subsection{La funzione \func{close}} \label{sec:file_close} -\subsection{La funzione \texttt{lseek}} +\subsection{La funzione \func{lseek}} \label{sec:file_lseek} -\subsection{La funzione \texttt{read}} +\subsection{La funzione \func{read}} \label{sec:file_read} -\subsection{La funzione \texttt{write}} +\subsection{La funzione \func{write}} \label{sec:file_write} \subsection{Operazioni atomiche coi file} @@ -112,13 +106,13 @@ funzioni fondamentali \func{open}, \func{read}, \func{write}, \section{Funzioni avanzate} \label{sec:file_adv_func} -\subsection{La funzioni \texttt{dup} e \texttt{dup2}} +\subsection{La funzioni \func{dup} e \func{dup2}} \label{sec:file_dup} -\subsection{La funzione \texttt{fcntl}} +\subsection{La funzione \func{fcntl}} \label{sec:file_fcntl} -\subsection{La funzione \texttt{ioctl}} +\subsection{La funzione \func{ioctl}} \label{sec:file_ioctl} diff --git a/gapil.tex b/gapil.tex index ff3e04b..b4c7cc1 100644 --- a/gapil.tex +++ b/gapil.tex @@ -1,4 +1,4 @@ -%% +%% %% GaPiL : Guida alla Programmazione in Linux %% %% S. Piccardi Oct. 2000 diff --git a/prochand.tex b/prochand.tex index 97b9c5e..e6913ed 100644 --- a/prochand.tex +++ b/prochand.tex @@ -1761,7 +1761,7 @@ essere rientrante se usa e modifica un oggetto che le viene fornito dal chiamante: due chiamate possono interferire se viene passato lo stesso oggetto. -Le glibc mettono a disposizione due macro di compilatore \macro{_REENTRANT} e -\macro{_THREAD_SAFE} per assicurare che siano usate delle versioni rientranti +Le glibc mettono a disposizione due macro di compilatore \macro{\_REENTRANT} e +\macro{\_THREAD\_SAFE} per assicurare che siano usate delle versioni rientranti delle funzioni di libreria. -- 2.30.2