\end{lstlisting}
\normalsize
se un secondo segnale arriva prima che il manipolatore invocato dal primo
-abbia eseguito la re-installazione di se stesso il segnale può essere perso o
+abbia eseguito la reinstallazione di se stesso il segnale può essere perso o
causare il comportamento originale assegnato al segnale (in genere la
terminazione del processo).
% Un'altra caratteristica della implementazione inaffidabile è che le chiamate
% di sistema non sono fatte ripartire automaticamente quando sono interrotte da
% un segnale, per questo un programma deve controllare lo stato di uscita della
-% chiamata al sistema e riperterla nel caso l'errore riportato da \texttt{errno}
+% chiamata al sistema e ripeterla nel caso l'errore riportato da \texttt{errno}
% sia \texttt{EINTR}.
Questo ci mostra ad esempio come con la semantica inaffidabile non esista una
% Per questo segnale le cose sono complicate dal fatto che possono esserci
% molte diverse eccezioni che \texttt{SIGFPE} non distingue, mentre lo
-% standard IEEE per le operazioni in virgola mobile definisce vaire eccezioni
+% standard IEEE per le operazioni in virgola mobile definisce varie eccezioni
% aritmetiche e richiede che esse siano notificate.
\item[\macro{SIGILL}] Il nome deriva da \textit{illegal instruction},
inizializzato leggendo al di la della fine di un vettore.
\item[\macro{SIGBUS}] Il nome deriva da \textit{bus error}. Come
\macro{SIGSEGV} questo è un segnale che viene generato di solito quando si
- dereferenzia un puntatore non inzializzato, la differenza è che
+ dereferenzia un puntatore non inizializzato, la differenza è che
\macro{SIGSEGV} indica un accesso non permesso su un indirizzo esistente
(tipo fuori dallo heap o dallo stack), mentre \macro{SIGBUS} indica
l'accesso ad un indirizzo non valido, come nel caso di un puntatore non
programma può dover eseguire una serie di azioni di pulizia prima di
terminare, come salvare informazioni sullo stato in cui si trova, cancellare
file temporanei, o ripristinare delle condizioni alterate durante il
-funzionamento (tipi il modo del terminale o i settaggi di una qualche
+funzionamento (come il modo del terminale o i settaggi di una qualche
periferica).
L'azione di default di questi segnali è di terminare il processo, questi
Se un processo non risponde a nessun altro segnale \macro{SIGKILL} ne causa
sempre la terminazione (in effetti il fallimento della terminazione di un
- processo da parte di \macro{SIGKILL} costituirebbe un funzionamento del
+ processo da parte di \macro{SIGKILL} costituirebbe un malfunzionamento del
kernel). Talvolta è il sistema stesso che può generare questo segnale quando
per condizioni particolari il processo non può più essere eseguito neanche
- per eseguire il manipolatore.
+ per eseguire un manipolatore.
\item[\macro{SIGHUP}] Il nome sta per \textit{hang-up}. Segnala che il
terminale dell'utente si è disconnesso (ad esempio perché si è interrotta la
rete). Viene usato anche per riportare la terminazione del processo di
Raccogliamo qui infine usa serie di segnali che hanno scopi differenti non
classificabili in maniera omogenea. Questi segnali sono:
\begin{basedescript}{\desclabelwidth{2.0cm}}
-\item[\macro{SIGUSR1}] e \macro{SIGUSR2} Sono due segnali a disposizione
+\item[\macro{SIGUSR1} e \macro{SIGUSR2}] Sono due segnali a disposizione
dell'utente che li può usare per quello che vuole. Possono essere utili per
implementare una comunicazione elementare fra processi diversi, o per
eseguire a richiesta una operazione utilizzando un manipolatore. L'azione di
necessario copiarlo.
La seconda funzione deriva da BSD ed è analoga alla funzione \func{perror}
-descritta in \secref{sec:intro_strerror}.
+descritta in \secref{sec:sys_strerror}.
\section{La gestione dei segnali}