X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=process.tex;h=d974565a10bdad9cacb8981981fce582be7c0f4a;hp=776a025b828df11dafd3c84e230b14092cea7fcf;hb=595863c4415b13434e12618069e9f57063cc2da7;hpb=429f6e0da8fc282eb6611b6fe83fdf58ae8da611 diff --git a/process.tex b/process.tex index 776a025..d974565 100644 --- a/process.tex +++ b/process.tex @@ -65,7 +65,7 @@ se si vogliono scrivere programmi portabili \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 @@ -77,7 +77,7 @@ Una forma alternativa 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 @@ -116,7 +116,7 @@ Infine occorre distinguere fra lo stato di uscita di un programma 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}} @@ -576,8 +576,8 @@ Gli svantaggi sono che la funzione non 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 @@ -690,7 +690,7 @@ che pu 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. @@ -699,6 +699,9 @@ un'altra funzione, per cui se l'errore avviene in funzioni profondamente annidate occorre usare la funzione \func{longjump}. + + + \section{La gestione di parametri e opzioni} \label{sec:proc_options} @@ -804,7 +807,6 @@ In \nfig\ exit(1); } break; - break; case 'a': /* output file (append) */ out_file=open(optarg,O_WRONLY|O_CREAT|O_APPEND); break; @@ -829,6 +831,7 @@ In \nfig\ \label{fig:proc_options_code} \end{figure} + \subsection{Opzioni in formato esteso} \label{sec:proc_opt_extended} @@ -839,6 +842,7 @@ versione estesa di \func{getopt}. (NdA: da finire). + \subsection{Le variabili di ambiente} \label{sec:proc_environ} @@ -888,6 +892,11 @@ l'editor preferito da invocare in caso di necessit 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}. + + + + +