opportuno definire la variabile ad un valore diverso da zero che consente di
rilevare un errore nel momento in cui avviene.
+Una modalità alternativa per effettuare dei controlli di consistenza sullo
+stato delle allocazioni di memoria eseguite con \func{malloc}, anche questa
+fornita come estensione specifica (e non standard) delle \acr{glibc}, è quella
+di utilizzare la funzione \funcd{mcheck}, che deve essere chiamata prima di
+eseguire qualunque allocazione con \func{malloc}; il suo prototipo è:
+\begin{prototype}{mcheck.h}{mcheck(void (*abortfn) (enum mcheck\_status
+ status))}
+ Attiva i controlli di consistenza delle allocazioni eseguite da \func{malloc}.
+
+ \bodydesc{La funzione restituisce 0 in caso di successo e $-1$ in caso di
+ fallimento; \var{errno} non viene impostata.}
+\end{prototype}
+
+La funzione consente di registrare una funzione di emergenza, da passare come
+argomento, che verrà eseguita tutte le volte che, in una successiva esecuzione
+di \func{malloc}, venissero trovate delle inconsistenze, come delle operazioni
+di scrittura oltre i limiti dei buffer allocati. Per questo motivo la funzione
+deve essere chiamata prima di qualunque allocazione di memoria, altrimenti
+fallirà con un valore di ritorni di $-1$.
+
+Se come argomento si passa \var{NULL} verrà utilizzata una funzione
+predefinita che stampa un messaggio di errore ed invoca la funzione
+\func{abort} (vedi sez.~\ref{sec:sig_alarm_abort}), altrimenti si dovrà
+utilizzare una funzione ad hoc che riceverà come argomento un codice di tipo
+\type{mcheck\_status}, un tipo enumerato che può assumere soltanto i valori di
+tab.
+
+
+
+\begin{table}[htb]
+ \centering
+ \footnotesize
+ \begin{tabular}[c]{|l|c|c|c|p{7cm}|}
+ \hline
+ \textbf{Valore} & \textbf{Significato} \\
+ \hline
+ \hline
+ \macro{}& \\
+ \macro{}& \\
+ \macro{}& \\
+ \macro{}& \\
+ \macro{}& \\
+ \macro{}& \\
+ \macro{}& \\
+ \macro{}& \\
+ \macro{}& \\
+ \macro{}& \\
+ \macro{}& \\
+ \macro{}& \\
+ \macro{}& \\
+ \hline
+ \end{tabular}
+ \caption{Valori dello stato.}
+ \label{tab:mcheck_status_value}
+\end{table}
+
% TODO: trattare le altre funzionalità avanzate di \func{malloc}, mallopt,
% mtrace, muntrace, mcheck, mallinfo e gli hook
% con le glibc 2.10 c'è pure malloc_info a sostituire mallinfo, vedi
``\textsl{sicura}'' da zero.
-\subsection{Opzioni in formato esteso}
-\label{sec:proc_opt_extended}
+%\subsection{Opzioni in formato esteso}
+%\label{sec:proc_opt_extended}
-Oltre alla modalità ordinaria di gestione delle opzioni trattata in
-sez.~\ref{sec:proc_opt_handling} le \acr{glibc} forniscono una modalità
-alternativa costituita dalle cosiddette \textit{long-options}, che consente di
-esprimere le opzioni in una forma più descrittiva che nel caso più generale è
-qualcosa del tipo di ``\texttt{-{}-option-name=parameter}''.
+%Oltre alla modalità ordinaria di gestione delle opzioni trattata in
+%sez.~\ref{sec:proc_opt_handling} le \acr{glibc} forniscono una modalità
+%alternativa costituita dalle cosiddette \textit{long-options}, che consente di
+%esprimere le opzioni in una forma più descrittiva che nel caso più generale è
+%qualcosa del tipo di ``\texttt{-{}-option-name=parameter}''.
-(NdA: questa parte verrà inserita in seguito).
+%(NdA: questa parte verrà inserita in seguito).
% TODO opzioni in formato esteso