Completate: condivisione, operazioni atomiche sui file, dup ed iniziata
[gapil.git] / signal.tex
index cc8e1af890ae765241e6da580477ddb5571ab75f..239544ce388f423bf2f3567d2f7e23736a0f9fd3 100644 (file)
@@ -29,8 +29,8 @@ segnale sono vari; un breve elenco di possibile cause 
 \item una richiesta dell'utente di terminare o fermare il programma. In genere
   si realizza attraverso un segnale mandato dalla shell in corrispondenza
   della pressione di tasti del terminale come 'ctrl-c' o 'ctrl-z'.
-\item l'esecuzione di una \texttt{kill} o di una \texttt{raise} da parte del
-  processo stesso o di un'altro (solo nel caso della \texttt{kill}).
+\item l'esecuzione di una \func{kill} o di una \func{raise} da parte del
+  processo stesso o di un'altro (solo nel caso della \func{kill}).
 \end{itemize}
 
 Ciascuno di questi eventi (tranne gli ultimi due che sono controllati
@@ -163,7 +163,6 @@ usare la funzione \func{sigpending} (vedi \secref{sec:sig_sigpending}) per
 determinare quali segnali sono bloccati e quali sono pendenti.
 
 
-
 \subsection{Tipi di segnali}
 \label{sec:sig_types}
 
@@ -182,7 +181,7 @@ esempi di segnali di questo tipo sono quelli legati all'arrivo di dati di
 input, scadenze di un timer, terminazione di processi figli.
 
 Una richiesta esplicita significa l'uso di una chiamata di sistema (come
-\texttt{kill} o \texttt{raise}) per la generazione di un segnale, cosa che
+\func{kill} o \func{raise}) per la generazione di un segnale, cosa che
 viene fatta usualmente dalla shell quando l'utente invoca la sequenza di tasti
 di stop o di suspend, ma può essere pure inserita all'interno di un programma.
 
@@ -220,18 +219,19 @@ volta per
 
 Una volta che il segnale viene notificato (che questo avvenga subito o dopo
 una attesa più o meno lunga) viene eseguita l'azione specificata per detto
-segnale. Per alcuni segnali (\texttt{SIGKILL} e \texttt{SIGSTOP}) questa azione
+segnale. Per alcuni segnali (\macro{SIGKILL} e \macro{SIGSTOP}) questa azione
 è fissa e non può essere cambiata, ma per tutti gli altri il programma può
 specificare una scelta fra le tre seguenti:
 
 \begin{itemize}
-\item ignorare il segnale
-\item utilizzare il manipolatore (\textit{signal handler}) specificato
+\item ignorare il segnale.
+\item catturare il segnale, ed utilizzare il manipolatore (\textit{signal
+    handler}) specificato.
 \item accettare l'azione di default per quel segnale.
 \end{itemize}
 
 Il programma può specificare queste scelte usano le due routine
-\texttt{signal} e \texttt{sigaction}; se si è installato un manipolatore sarà
+\func{signal} e \func{sigaction}; se si è installato un manipolatore sarà
 quest'ultimo a intercettare il segnale ed ad essere eseguito, e mentre viene
 eseguito (onde evitare race conditions) il segnale viene bloccato.
 
@@ -249,7 +249,7 @@ l'azione standard 
 
 Quando un segnale termina un processo, il padre può determinare la causa della
 terminazione esaminando il codice di stato riportato delle funzioni
-\texttt{wait} e \texttt{waitpid} in cui è riportato anche se la causa è un
+\func{wait} e \func{waitpid} in cui è riportato anche se la causa è un
 segnale e nel caso quale; questo è il modo in cui la shell determina i motivi
 della terminazione di un programma e scrive un eventuale messaggio di errore.
 
@@ -258,7 +258,7 @@ violazioni di accesso) hanno anche la caratteristica di scrivere un file
 \textit{core dump} che registra lo stato del processo prima della terminazione
 e può essere esaminato da un debugger per investigare sulla causa dell'errore.
 Lo stesso avviene se i suddetti segnale vengono generati artificialmente con
-una \texttt{kill}.
+una \func{kill}.
 
 
 
@@ -274,7 +274,7 @@ Per questo ad ogni tipo di segnale viene associato un nome, che corrisponde,
 tramite una macro di preprocessore, al suddetto numero. Sono questi nomi, che
 sono standardizzati e uniformi rispetto alle varie implementazioni, che si
 devono usare nei programmi. Tutti i nomi e le funzioni che concernono i
-segnali sono definiti nell'header di sistema \texttt{signal.h}.
+segnali sono definiti nell'header di sistema \file{signal.h}.
 
 Il numero totale di segnali presenti è dato dalla macro \macro{NSIG}, e dato
 che i numeri dei segnali sono allocati progressivamente, essa corrisponde
@@ -368,6 +368,7 @@ stato dello stack e delle variabili al momento della ricezione del segnale.
 La descrizione dettagliata del significato dei vari segnali, raggruppati per
 tipologia, verrà affrontate nel seguito.
 
+
 \subsection{Segnali di errore di programma}
 \label{sec:sig_prog_error}