programma,\footnote{nel caso di \func{atexit} lo standard POSIX.1-2001
richiede che siano registrabili almeno \const{ATEXIT\_MAX} funzioni (il
valore può essere ottenuto con \func{sysconf}, vedi
- sez.~\ref{sec:sys_sysconf}).} sia per la chiamata ad \func{exit} che per il
+ sez.~\ref{sec:sys_limits}).} sia per la chiamata ad \func{exit} che per il
ritorno di \code{main}. La prima funzione che si può utilizzare a tal fine è
\funcd{atexit}, il cui prototipo è:
Contiene il codice del programma, delle funzioni di librerie da esso
utilizzate, e le costanti. Normalmente viene condiviso fra tutti i processi
che eseguono lo stesso programma e nel caso delle librerie anche da processi
- che eseguono altri programmi.
+ che eseguono altri programmi.
Quando l'architettura hardware lo supporta viene marcato in sola lettura per
evitare sovrascritture accidentali (o maliziose) che ne modifichino le
\textbf{Valore} & \textbf{Significato} \\
\hline
\hline
- \const{MCHECK\_OK} & riportato a \func{mprobe} se nessuna
+ \const{MCHECK\_OK} & Riportato a \func{mprobe} se nessuna
inconsistenza è presente.\\
- \const{MCHECK\_DISABLED}& riportato a \func{mprobe} se si è chiamata
+ \const{MCHECK\_DISABLED}& Riportato a \func{mprobe} se si è chiamata
\func{mcheck} dopo aver già usato
\func{malloc}.\\
- \const{MCHECK\_HEAD} & i dati immediatamente precedenti il buffer sono
+ \const{MCHECK\_HEAD} & I dati immediatamente precedenti il buffer sono
stati modificati, avviene in genere quando si
decrementa eccessivamente il valore di un
puntatore scrivendo poi prima dell'inizio del
buffer.\\
- \const{MCHECK\_TAIL} & i dati immediatamente seguenti il buffer sono
+ \const{MCHECK\_TAIL} & I dati immediatamente seguenti il buffer sono
stati modificati, succede quando si va scrivere
oltre la dimensione corretta del buffer.\\
- \const{MCHECK\_FREE} & il buffer è già stato disallocato.\\
+ \const{MCHECK\_FREE} & Il buffer è già stato disallocato.\\
\hline
\end{tabular}
\caption{Valori dello stato dell'allocazione di memoria ottenibili dalla
& \textbf{Linux} & \textbf{Descrizione} \\
\hline
\hline
- \texttt{USER} &$\bullet$&$\bullet$&$\bullet$& Nome utente\\
- \texttt{LOGNAME}&$\bullet$&$\bullet$&$\bullet$& Nome di login\\
+ \texttt{USER} &$\bullet$&$\bullet$&$\bullet$& Nome utente.\\
+ \texttt{LOGNAME}&$\bullet$&$\bullet$&$\bullet$& Nome di login.\\
\texttt{HOME} &$\bullet$&$\bullet$&$\bullet$& Directory base
- dell'utente\\
- \texttt{LANG} &$\bullet$&$\bullet$&$\bullet$& Localizzazione\\
+ dell'utente.\\
+ \texttt{LANG} &$\bullet$&$\bullet$&$\bullet$& Localizzazione.\\
\texttt{PATH} &$\bullet$&$\bullet$&$\bullet$& Elenco delle directory
- dei programmi\\
- \texttt{PWD} &$\bullet$&$\bullet$&$\bullet$& Directory corrente\\
- \texttt{SHELL} &$\bullet$&$\bullet$&$\bullet$& Shell in uso\\
- \texttt{TERM} &$\bullet$&$\bullet$&$\bullet$& Tipo di terminale\\
+ dei programmi.\\
+ \texttt{PWD} &$\bullet$&$\bullet$&$\bullet$& Directory corrente.\\
+ \texttt{SHELL} &$\bullet$&$\bullet$&$\bullet$& Shell in uso.\\
+ \texttt{TERM} &$\bullet$&$\bullet$&$\bullet$& Tipo di terminale.\\
\texttt{PAGER} &$\bullet$&$\bullet$&$\bullet$& Programma per vedere i
- testi\\
- \texttt{EDITOR} &$\bullet$&$\bullet$&$\bullet$& Editor preferito\\
- \texttt{BROWSER}&$\bullet$&$\bullet$&$\bullet$& Browser preferito\\
+ testi.\\
+ \texttt{EDITOR} &$\bullet$&$\bullet$&$\bullet$& Editor preferito.\\
+ \texttt{BROWSER}&$\bullet$&$\bullet$&$\bullet$& Browser preferito.\\
\texttt{TMPDIR} &$\bullet$&$\bullet$&$\bullet$& Directory dei file
- temporanei\\
+ temporanei.\\
\hline
\end{tabular}
\caption{Esempi delle variabili di ambiente più comuni definite da vari
% TODO opzioni in formato esteso
+% TODO trattare il vettore ausiliario e getauxval (vedi
+% http://lwn.net/Articles/519085/)
+
+
\section{Problematiche di programmazione generica}
\label{sec:proc_gen_prog}