Reindicizzate alcune macro, messa sezione sulle opzioni di IP, risistemata
[gapil.git] / process.tex
index f2c4f73bde2eb9955619c26c8a402cbd8b1ae26a..e67ae82e4e1acc25228e2846493e383b3a0d7610 100644 (file)
@@ -54,18 +54,19 @@ dettagli sono riportati nella man page di \cmd{ld.so}.
 Il sistema fa partire qualunque programma chiamando la funzione \func{main};
 sta al programmatore chiamare così la funzione principale del programma da cui
 si suppone iniziare l'esecuzione; in ogni caso senza questa funzione lo stesso
-\textit{linker} darebbe luogo ad errori.
-
-Lo standard ISO C specifica che la funzione \func{main} può non avere 
-argomenti o prendere due argomenti che rappresentano gli argomenti passati da
-linea di comando, in sostanza un prototipo che va sempre bene è il seguente:
+\textit{linker} (ci chiama così il programma che effettua i collegamenti di
+cui sopra) darebbe luogo ad errori.  Lo standard ISO C specifica che la
+funzione \func{main} può non avere argomenti o prendere due argomenti che
+rappresentano gli argomenti passati da linea di comando, in sostanza un
+prototipo che va sempre bene è il seguente:
 \includecodesnip{listati/main_def.c}
 
 In realtà nei sistemi Unix esiste un'altro modo per definire la funzione
 \func{main}, che prevede la presenza di un terzo argomento, \code{char
-  *envp[]}, che fornisce l'\textsl{ambiente} (vedi sez.~\ref{sec:proc_environ})
-del programma; questa forma però non è prevista dallo standard POSIX.1 per cui
-se si vogliono scrivere programmi portabili è meglio evitarla.
+  *envp[]}, che fornisce (vedi sez.~\ref{sec:proc_environ})
+l'\textsl{ambiente} del programma; questa forma però non è prevista dallo
+standard POSIX.1 per cui se si vogliono scrivere programmi portabili è meglio
+evitarla.
 
 
 \subsection{Come chiudere un programma}
@@ -151,7 +152,7 @@ non vengono salvati e le eventuali funzioni registrate con \func{atexit} e
 
 La funzione chiude tutti i file descriptor appartenenti al processo (si tenga
 presente che questo non comporta il salvataggio dei dati bufferizzati degli
-stream), fa sì che ogni figlio del processo sia ereditato da \cmd{init} (vedi
+stream), fa sì che ogni figlio del processo sia adottato da \cmd{init} (vedi
 cap.~\ref{cha:process_handling}), manda un segnale \const{SIGCHLD} al processo
 padre (vedi sez.~\ref{sec:sig_job_control}) ed infine ritorna lo stato di
 uscita specificato in \param{status} che può essere raccolto usando la
@@ -265,7 +266,7 @@ nell'assegnare ad ogni processo uno spazio virtuale di indirizzamento lineare,
 in cui gli indirizzi vanno da zero ad un qualche valore massimo.\footnote{nel
   caso di Linux fino al kernel 2.2 detto massimo era, per macchine a 32bit, di
   2Gb. Con il kernel 2.4 ed il supporto per la \textit{high-memory} il limite
-  è stato esteso.}
+  è stato esteso anche per macchine a 32 bit.}
 
 Come accennato in cap.~\ref{cha:intro_unix} questo spazio di indirizzi è
 virtuale e non corrisponde all'effettiva posizione dei dati nella RAM del
@@ -434,10 +435,10 @@ una funzione e per le sue variabili locali (le cosiddette \textsl{variabili
 per queste variabili viene allocato nello stack quando viene eseguita la
 funzione e liberato quando si esce dalla medesima.
 
-Esiste però un terzo tipo di allocazione, l'\textsl{allocazione dinamica della
-  memoria}, che non è prevista direttamente all'interno del linguaggio C, ma
-che è necessaria quando il quantitativo di memoria che serve è determinabile
-solo durante il corso dell'esecuzione del programma.
+Esiste però un terzo tipo di allocazione, l'\textsl{allocazione dinamica}
+della memoria, che non è prevista direttamente all'interno del linguaggio C,
+ma che è necessaria quando il quantitativo di memoria che serve è
+determinabile solo durante il corso dell'esecuzione del programma.
 
 Il C non consente di usare variabili allocate dinamicamente, non è possibile
 cioè definire in fase di programmazione una variabile le cui dimensioni
@@ -1070,7 +1071,7 @@ delle relative chiamate (si veda sez.~\ref{sec:proc_exec}).
 
 La shell ad esempio ne usa molte per il suo funzionamento (come \texttt{PATH}
 per la ricerca dei comandi, o \texttt{IFS} per la scansione degli argomenti),
-e alcune di esse (come \texttt{HOME}, \texttt{USER}, etc.) sono definite al
+e alcune di esse (come \texttt{HOME}, \texttt{USER}, ecc.) sono definite al
 login (per i dettagli si veda sez.~\ref{sec:sess_login}). In genere è cura
 dell'amministratore definire le opportune variabili di ambiente in uno script
 di avvio. Alcune servono poi come riferimento generico per molti programmi