Tolti un puoi di todo, chiarita la parte sulle calling convention,
[gapil.git] / system.tex
index f2569bf90a08beaedfe5654b421cbfe5fd784a78..dfc71d9939f14dd691e32bb569ec5c89c06553b6 100644 (file)
@@ -793,6 +793,8 @@ valori riportati in tab.~\ref{tab:sys_mount_flags}.
   \label{tab:sys_mount_flags}
 \end{table}
 
   \label{tab:sys_mount_flags}
 \end{table}
 
+% TODO aggiornare con i nuovi flag di man mount
+
 Per l'impostazione delle caratteristiche particolari di ciascun filesystem si
 usa invece l'argomento \param{data} che serve per passare le ulteriori
 informazioni necessarie, che ovviamente variano da filesystem a filesystem.
 Per l'impostazione delle caratteristiche particolari di ciascun filesystem si
 usa invece l'argomento \param{data} che serve per passare le ulteriori
 informazioni necessarie, che ovviamente variano da filesystem a filesystem.
@@ -854,6 +856,8 @@ seconda del tipo di filesystem alcune (o tutte) possono essere superate,
 evitando l'errore di \errcode{EBUSY}.  In tutti i casi prima dello smontaggio
 viene eseguita una sincronizzazione dei dati. 
 
 evitando l'errore di \errcode{EBUSY}.  In tutti i casi prima dello smontaggio
 viene eseguita una sincronizzazione dei dati. 
 
+% TODO documentare MNT_DETACH e MNT_EXPIRE ...
+
 Altre due funzioni specifiche di Linux,\footnote{esse si trovano anche su BSD,
   ma con una struttura diversa.} utili per ottenere in maniera diretta
 informazioni riguardo al filesystem su cui si trova un certo file, sono
 Altre due funzioni specifiche di Linux,\footnote{esse si trovano anche su BSD,
   ma con una struttura diversa.} utili per ottenere in maniera diretta
 informazioni riguardo al filesystem su cui si trova un certo file, sono
@@ -913,6 +917,8 @@ semplice invocare direttamente il programma \cmd{mount}, per cui ne
 tralasceremo la trattazione, rimandando al manuale delle \acr{glibc}
 \cite{glibc} per la documentazione completa.
 
 tralasceremo la trattazione, rimandando al manuale delle \acr{glibc}
 \cite{glibc} per la documentazione completa.
 
+
+
 % TODO scrivere relativamente alle varie funzioni (getfsent e getmntent &C)
 
 \subsection{La gestione delle informazioni su utenti e gruppi}
 % TODO scrivere relativamente alle varie funzioni (getfsent e getmntent &C)
 
 \subsection{La gestione delle informazioni su utenti e gruppi}
@@ -1158,11 +1164,13 @@ della macchina.
 I dati vengono usualmente\footnote{questa è la locazione specificata dal
   \textit{Linux Filesystem Hierarchy Standard}, adottato dalla gran parte
   delle distribuzioni.} memorizzati nei due file \file{/var/run/utmp} e
 I dati vengono usualmente\footnote{questa è la locazione specificata dal
   \textit{Linux Filesystem Hierarchy Standard}, adottato dalla gran parte
   delle distribuzioni.} memorizzati nei due file \file{/var/run/utmp} e
-\file{/var/log/wtmp}. Quando un utente si collega viene aggiunta una voce a
-\file{/var/run/utmp} in cui viene memorizzato il nome di login, il terminale
-da cui ci si collega, l'\acr{uid} della shell di login, l'orario della
-connessione ed altre informazioni.  La voce resta nel file fino al logout,
-quando viene cancellata e spostata in \file{/var/log/wtmp}.
+\file{/var/log/wtmp}.\footnote{non si confonda quest'ultimo con il simile
+  \file{/var/log/btmp} dove invece vengono memorizzati dal programma di login
+  tutti tentativi di accesso fallito.} Quando un utente si collega viene
+aggiunta una voce a \file{/var/run/utmp} in cui viene memorizzato il nome di
+login, il terminale da cui ci si collega, l'\acr{uid} della shell di login,
+l'orario della connessione ed altre informazioni.  La voce resta nel file fino
+al logout, quando viene cancellata e spostata in \file{/var/log/wtmp}.
 
 In questo modo il primo file viene utilizzato per registrare chi sta
 utilizzando il sistema al momento corrente, mentre il secondo mantiene la
 
 In questo modo il primo file viene utilizzato per registrare chi sta
 utilizzando il sistema al momento corrente, mentre il secondo mantiene la
@@ -1195,34 +1203,29 @@ sono:
   
   \bodydesc{Le funzioni non ritornano codici di errore.}
 \end{functions}
   
   \bodydesc{Le funzioni non ritornano codici di errore.}
 \end{functions}
-
-In caso questo non venga specificato nessun file viene usato il valore
-standard \const{\_PATH\_UTMP} (che è definito in \file{paths.h}); in genere
-\func{utmpname} prevede due possibili valori:
+e si tenga presente che le funzioni non restituiscono nessun valore, pertanto
+non è possibile accorgersi di eventuali errori (ad esempio se si è impostato
+un nome di file sbagliato con \func{utmpname}).
+
+Nel caso non si sia utilizzata \func{utmpname} per specificare un file di
+registro alternativo, sia \func{setutent} che \func{endutent} operano usando
+il default che è \file{/var/run/utmp}. Il nome di questo file, così come una
+serie di altri valori di default per i \textit{pathname} di uso più comune,
+viene mantenuto nei valori di una serie di costanti definite includendo
+\file{paths.h}, in particolare quelle che ci interessano sono:
 \begin{basedescript}{\desclabelwidth{2.0cm}}
 \begin{basedescript}{\desclabelwidth{2.0cm}}
-\item[\const{\_PATH\_UTMP}] Specifica il registro per gli utenti correntemente
-  collegati.
-\item[\const{\_PATH\_WTMP}] Specifica il registro per l'archivio storico degli
-  utenti collegati.
+\item[\const{\_PATH\_UTMP}] specifica il file che contiene il registro per gli
+  utenti correntemente collegati; questo è il valore che viene usato se non si
+  è utilizzato \func{utmpname} per modificarlo.
+\item[\const{\_PATH\_WTMP}] specifica il file che contiene il registro per
+  l'archivio storico degli utenti collegati.
 \end{basedescript}
 \end{basedescript}
-corrispondenti ai file \file{/var/run/utmp} e \file{/var/log/wtmp} visti in
-precedenza.
-
-\begin{figure}[!htb]
-  \footnotesize
-  \centering
-  \begin{minipage}[c]{15cm}
-    \includestruct{listati/utmp.h}
-  \end{minipage} 
-  \normalsize 
-  \caption{La struttura \structd{utmp} contenente le informazioni di una voce
-    del registro di \textsl{contabilità}.}
-  \label{fig:sys_utmp_struct}
-\end{figure}
+che nel caso di Linux hanno un valore corrispondente ai file
+\file{/var/run/utmp} e \file{/var/log/wtmp} citati in precedenza.
 
 
-Una volta aperto il file si può eseguire una scansione leggendo o scrivendo
-una voce con le funzioni \funcd{getutent}, \funcd{getutid}, \funcd{getutline}
-e \funcd{pututline}, i cui prototipi sono:
+Una volta aperto il file del registro degli utenti si può eseguire una
+scansione leggendo o scrivendo una voce con le funzioni \funcd{getutent},
+\funcd{getutid}, \funcd{getutline} e \funcd{pututline}, i cui prototipi sono:
 \begin{functions}
   \headdecl{utmp.h} 
 
 \begin{functions}
   \headdecl{utmp.h} 
 
@@ -1249,6 +1252,19 @@ fig.~\ref{fig:sys_utmp_struct}. Le prime tre funzioni servono per leggere una
 voce dal registro; \func{getutent} legge semplicemente la prima voce
 disponibile; le altre due permettono di eseguire una ricerca.
 
 voce dal registro; \func{getutent} legge semplicemente la prima voce
 disponibile; le altre due permettono di eseguire una ricerca.
 
+
+\begin{figure}[!htb]
+  \footnotesize
+  \centering
+  \begin{minipage}[c]{15cm}
+    \includestruct{listati/utmp.h}
+  \end{minipage} 
+  \normalsize 
+  \caption{La struttura \structd{utmp} contenente le informazioni di una voce
+    del registro di \textsl{contabilità}.}
+  \label{fig:sys_utmp_struct}
+\end{figure}
+
 Con \func{getutid} si può cercare una voce specifica, a seconda del valore del
 campo \var{ut\_type} dell'argomento \param{ut}.  Questo può assumere i valori
 riportati in tab.~\ref{tab:sys_ut_type}, quando assume i valori
 Con \func{getutid} si può cercare una voce specifica, a seconda del valore del
 campo \var{ut\_type} dell'argomento \param{ut}.  Questo può assumere i valori
 riportati in tab.~\ref{tab:sys_ut_type}, quando assume i valori
@@ -1351,7 +1367,7 @@ utilizzo.
 \subsection{L'uso delle risorse}
 \label{sec:sys_resource_use}
 
 \subsection{L'uso delle risorse}
 \label{sec:sys_resource_use}
 
-Come abbiamo accennato in sez.~\ref{sec:proc_wait4} le informazioni riguardo
+Come abbiamo accennato in sez.~\ref{sec:proc_wait} le informazioni riguardo
 l'utilizzo delle risorse da parte di un processo è mantenuto in una struttura
 di tipo \struct{rusage}, la cui definizione (che si trova in
 \file{sys/resource.h}) è riportata in fig.~\ref{fig:sys_rusage_struct}.
 l'utilizzo delle risorse da parte di un processo è mantenuto in una struttura
 di tipo \struct{rusage}, la cui definizione (che si trova in
 \file{sys/resource.h}) è riportata in fig.~\ref{fig:sys_rusage_struct}.
@@ -1395,7 +1411,7 @@ ai tempi di utilizzo del processore, che sono definiti come strutture di tipo
 \struct{timeval}.
 
 Questa è la stessa struttura utilizzata da \func{wait4} (si ricordi quando
 \struct{timeval}.
 
 Questa è la stessa struttura utilizzata da \func{wait4} (si ricordi quando
-visto in sez.~\ref{sec:proc_wait4}) per ricavare la quantità di risorse
+visto in sez.~\ref{sec:proc_wait}) per ricavare la quantità di risorse
 impiegate dal processo di cui si è letto lo stato di terminazione, ma essa può
 anche essere letta direttamente utilizzando la funzione \funcd{getrusage}, il
 cui prototipo è:
 impiegate dal processo di cui si è letto lo stato di terminazione, ma essa può
 anche essere letta direttamente utilizzando la funzione \funcd{getrusage}, il
 cui prototipo è:
@@ -2631,13 +2647,6 @@ stampa del nome del programma. Inoltre essa usa un'altra variabile globale,
 che errori relativi alla stessa linea non vengano ripetuti.
 
 
 che errori relativi alla stessa linea non vengano ripetuti.
 
 
-
-
-%%% Local Variables: 
-%%% mode: latex
-%%% TeX-master: "gapil"
-%%% End: 
-
 % LocalWords:  filesystem like kernel saved header limits sysconf sez tab float
 % LocalWords:  FOPEN stdio MB LEN CHAR char UCHAR unsigned SCHAR MIN signed INT
 % LocalWords:  SHRT short USHRT int UINT LONG long ULONG LLONG ULLONG POSIX ARG
 % LocalWords:  filesystem like kernel saved header limits sysconf sez tab float
 % LocalWords:  FOPEN stdio MB LEN CHAR char UCHAR unsigned SCHAR MIN signed INT
 % LocalWords:  SHRT short USHRT int UINT LONG long ULONG LLONG ULLONG POSIX ARG
@@ -2684,4 +2693,11 @@ che errori relativi alla stessa linea non vengano ripetuti.
 % LocalWords:  strftime thread EOF modifiable lvalue app errcode strerror LC at
 % LocalWords:  perror string errnum MESSAGES error message ErrCode strtol log
 % LocalWords:  program invocation argv printf print progname exit count fname
 % LocalWords:  strftime thread EOF modifiable lvalue app errcode strerror LC at
 % LocalWords:  perror string errnum MESSAGES error message ErrCode strtol log
 % LocalWords:  program invocation argv printf print progname exit count fname
-% LocalWords:  lineno one  standardese Di
+% LocalWords:  lineno one standardese Di
+
+
+
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: "gapil"
+%%% End: