\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
o il terminale in uno stato definito prima di fermarsi; se per esempio un
programma ha disabilitato l'eco sul terminale può installare un manipolatore
per riabilitarlo prima di fermarsi.
-\item[\macro{SIGTTIN}]
-\item[\macro{SIGTTOU}]
+\item[\macro{SIGTTIN}] Un processo non può leggere dal terminale se esegue una
+ sessione di lavoro in background. Quando un processo in background tenta di
+ leggere da un terminale viene inviato questo segnale a tutti i processi
+ della sessione di lavoro. L'azione di default è di fermare il processo.
+ L'argomento è trattato in \secref{sec:sess_xxx}.
+\item[\macro{SIGTTOU}] Segnale analogo al precedente \macro{SIGTTIN}, ma
+ generato quando si tenta di scrivere o modificare uno dei modi del
+ terminale. L'azione di default è di fermare il processo, l'argomento è
+ trattato in \secref{sec:sess_xxx}.
\end{basedescript}
terminato inavvertitamente alla scrittura sulla pipe il kernel genera questo
segnale. Se il segnale è bloccato, intercettato o ignorato la chiamata che
lo ha causato fallisce restituendo l'errore \macro{EPIPE}
-\item[\macro{SIGLOST}] Sta per \textit{Resource lost}.
-\item[\macro{SIGXCPU}] Sta per \textit{CPU time limit exceeded}.
-\item[\macro{SIGXFSZ}] Sta per \textit{File size limit exceeded}.
+\item[\macro{SIGLOST}] Sta per \textit{Resource lost}. Viene generato quando
+ c'è un advisory lock su un file NFS, ed il server riparte dimenticando la
+ situazione precedente.
+\item[\macro{SIGXCPU}] Sta per \textit{CPU time limit exceeded}. Questo
+ segnale è generato quando un processo eccede il limite impostato per il
+ tempo di CPU disponibile, vedi \secref{sec:sys_xxx}.
+\item[\macro{SIGXFSZ}] Sta per \textit{File size limit exceeded}. Questo
+ segnale è generato quando un processo tenta di estendere un file oltre le
+ dimensioni specificate dal limite impostato per le dimensioni massime di un
+ file, vedi \secref{sec:sys_xxx}.
\end{basedescript}
\subsection{Funzioni rientranti e default dei segnali}
\label{sec:sig_reentrant}
+
+
+
+
+\subsection{La funzione \func{sigpending}}
+\label{sec:sig_sigpending}
+