\subsection{Come chiudere un programma}
-\label{sec:proc_termination}
+\label{sec:proc_conclusion}
La via normale per la quale un programma finisce è quando la funzione
\func{main} ritorna, una modalità equivalente di conclusione è quella di
Oltre alla conclusione ``normale'' esiste anche la possibilità di una
conclusione ``anomala'' del programma a causa di segnali o della chiamata alla
funzione \func{abort} (che comunque genera un segnale che termina il
-programma); torneremo su questo in \secref{sec:sig_prog_error}.
+programma); torneremo su questo in \secref{sec:proc_termination}.
Il valore di ritorno della funzione main, o quello usato nelle chiamate ad
\func{exit} e \func{\_exit}, viene chiamato \textit{exit status} e passato
possibile un processo possa essere terminato (da un segnale) prima che il
programma in esecuzione si sia concluso. In caso di conclusione normale del
programma però lo stato di uscita diventa parte dello stato di conclusione del
-processo (vedi \secref{sec:proc_xxx}).
+processo (vedi \secref{sec:proc_termination}).
\subsection{Le funzioni \func{exit} e \func{\_exit}}
non è possibile aumentare le dimensioni dello stack una volta chiamata una
funzione e quindi l'uso limita la portabilità dei programmi, inoltre se si
cerca di allocare troppa memoria non si ottiene un messaggio di errore, ma un
-segnale di \textit{segmentation violation} analogo a quello che si avrebbe da
-una ricorsione infinita.
+segnale di \textit{segment violation} analogo a quello che si avrebbe da una
+ricorsione infinita.
Inoltre non è chiaramente possibile usare questa funzione per allocare memoria
che deve poi essere usata anche al di fuori della funzione in cui questa viene
Il controllo del flusso di un programma in genere viene effettuato con le
varie istruzioni del linguaggio C, la più bistrattata delle quali è il
-\texttt{goto}, ampiamente deprecato in favore di costrutti più puliti; esiste
+\func{goto}, ampiamente deprecato in favore di costrutti più puliti; esiste
però un caso in l'uso di questa istruzione porta all'implementazione più
efficiente, quello dell'uscita in caso di errore.
exit(1);
}
break;
- break;
case 'a': /* output file (append) */
out_file=open(optarg,O_WRONLY|O_CREAT|O_APPEND);
break;
\label{fig:proc_options_code}
\end{figure}
+
\subsection{Opzioni in formato esteso}
\label{sec:proc_opt_extended}
(NdA: da finire).
+
\subsection{Le variabili di ambiente}
\label{sec:proc_environ}
Gli standard POSIX e XPG3 definiscono alcune di queste variabili (le più
comuni), come riportato in \ntab. GNU/Linux le supporta tutte e ne definisce
-anche altre per una lista parziale si può controllare \cmd{man environ}
+anche altre per una lista parziale si può controllare \cmd{man environ}.
+
+
+
+
+