Una forma alternativa per effettuare una terminazione esplicita di un
programma è quella di chiamare direttamente la \textit{system call}
\funcd{\_exit},\footnote{la stessa è definita anche come \funcd{\_Exit} in
- \headfile{stdlib.h}, inoltre a partire dalle \acr{glibc} 2.3 usando questa
+ \headfile{stdlib.h}, inoltre a partire dalla \acr{glibc} 2.3 usando questa
funzione viene invocata \func{exit\_group} che termina tutti i
\textit{thread} del processo e non solo quello corrente (fintanto che non si
usano i \textit{thread}\unavref{, vedi sez.~\ref{cha:threads},} questo non
deve prendere argomenti e non deve ritornare niente. In sostanza deve la
funzione di pulizia dovrà essere definita come \code{void function(void)}.
-Un'estensione di \func{atexit} è la funzione \funcd{on\_exit}, che le
-\acr{glibc} includono per compatibilità con SunOS ma che non è detto sia
-definita su altri sistemi,\footnote{la funzione è disponibile dalle
+Un'estensione di \func{atexit} è la funzione \funcd{on\_exit}, che la
+\acr{glibc} include per compatibilità con SunOS ma che non è detto sia
+definita su altri sistemi,\footnote{la funzione è disponibile dalla
\acr{glibc} 2.19 definendo la macro \macro{\_DEFAULT\_SOURCE}, mentre in
precedenza erano necessarie \macro{\_BSD\_SOURCE} o \macro{\_SVID\_SOURCE};
non essendo prevista dallo standard POSIX è in generale preferibile evitarne
In genere si usano \func{malloc} e \func{calloc} per allocare dinamicamente
un'area di memoria.\footnote{queste funzioni presentano un comportamento
- diverso fra le \acr{glibc} e le \acr{uClib} quando il valore di \param{size}
+ diverso fra la \acr{glibc} e la \acr{uClib} quando il valore di \param{size}
è nullo. Nel primo caso viene comunque restituito un puntatore valido,
anche se non è chiaro a cosa esso possa fare riferimento, nel secondo caso
viene restituito \val{NULL}. Il comportamento è analogo con
Nessuna delle due funzioni ha una chiara standardizzazione e nessuna delle due
compare in POSIX.1, inoltre ci sono indicazioni discordi sui file che ne
contengono la definizione;\footnote{secondo SUSv2 \func{valloc} è definita in
- \headfile{stdlib.h}, mentre sia le \acr{glibc} che le precedenti \acr{libc4}
+ \headfile{stdlib.h}, mentre sia la \acr{glibc} che le precedenti \acr{libc4}
e \acr{libc5} la dichiarano in \headfile{malloc.h}, lo stesso vale per
\func{memalign} che in alcuni sistemi è dichiarata in \headfile{stdlib.h}.}
per questo motivo il loro uso è sconsigliato, essendo state sostituite dalla
nuova \funcd{posix\_memalign}, che è stata standardizzata in POSIX.1d e
-disponibile dalle \acr{glibc} 2.1.91; il suo prototipo è:
+disponibile dalla \acr{glibc} 2.1.91; il suo prototipo è:
\begin{funcproto}{
\fhead{stdlib.h}
allocata con \func{posix\_memalign} deve essere disallocata con \func{free},
che in questo caso però è quanto richiesto dallo standard.
-Dalla versione 2.16 delle \acr{glibc} è stata aggiunta anche la funzione
+Dalla versione 2.16 della \acr{glibc} è stata aggiunta anche la funzione
\funcd{aligned\_alloc}, prevista dallo standard C11 (e disponibile definendo
\const{\_ISOC11\_SOURCE}), il cui prototipo è:
vecchie \acr{libc4} e \acr{libc5}; nella \acr{glibc}, dalla versione 2.0
alla 2.1.1, veniva invece fatta una copia, seguendo il comportamento di
BSD4.4; dato che questo può dar luogo a perdite di memoria e non rispetta lo
- standard il comportamento è stato modificato a partire dalle 2.1.2,
+ standard il comportamento è stato modificato a partire dalla 2.1.2,
eliminando anche, sempre in conformità a SUSv2, l'attributo \direct{const}
dal prototipo.} pertanto ogni cambiamento alla stringa in questione si
riflette automaticamente sull'ambiente, e quindi si deve evitare di passare a
%\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à
+%sez.~\ref{sec:proc_opt_handling} la \acr{glibc} fornisce 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}''.