Aggiunte e correzioni
[gapil.git] / signal.tex
index adbec4db3e49f90de92da980d3a064b2cf2716b1..f0565a23a2e305ccbfbe3fa04130cad36872efa8 100644 (file)
@@ -1839,11 +1839,10 @@ dell'implementazione di \code{sleep} mostrata in
 allarme avesse interrotto un altro manipolatore questo non sarebbe stato
 eseguito correttamente; la cosa poteva essere prevenuta installando gli altri
 manipolatori usando \var{sa\_mask} per bloccare \macro{SIGALRM} durante la
 allarme avesse interrotto un altro manipolatore questo non sarebbe stato
 eseguito correttamente; la cosa poteva essere prevenuta installando gli altri
 manipolatori usando \var{sa\_mask} per bloccare \macro{SIGALRM} durante la
-loro esecuzione. 
-Il valore di \var{sa\_flag} permette di specificare vari aspetti del
-comportamento di \func{sigaction}, e della reazione del processo ai vari
-segnali; i valori possibili ed il relativo significato sono riportati in
-\tabref{tab:sig_sa_flag}. 
+loro esecuzione.  Il valore di \var{sa\_flag} permette di specificare vari
+aspetti del comportamento di \func{sigaction}, e della reazione del processo
+ai vari segnali; i valori possibili ed il relativo significato sono riportati
+in \tabref{tab:sig_sa_flag}.
 
 \begin{table}[htb]
   \footnotesize
 
 \begin{table}[htb]
   \footnotesize
@@ -1900,9 +1899,11 @@ che non si sia vincolati allo standard ISO C, 
 l'uso di \func{signal} a favore di \func{sigaction}.
 
 Per questo motivo si è provveduto, per mantenere un'interfaccia semplificata
 l'uso di \func{signal} a favore di \func{sigaction}.
 
 Per questo motivo si è provveduto, per mantenere un'interfaccia semplificata
-che abbia le stesse caratteristiche di \func{signal} a definire una funzione
-equivalente (che si trova come \code{inline} nel file \file{wrapper.h} dei
-sorgenti allegati) \code{Signal}, riportata in \figref{fig:sig_Signal_code}.
+che abbia le stesse caratteristiche di \func{signal}, a definire una funzione
+equivalente attraverso \func{sigaction}; la funzione è \code{Signal}, e si
+trova definita come \code{inline} nel file \file{wrapper.h} (nei sorgenti
+allegati), riportata in \figref{fig:sig_Signal_code}. La riutilizzeremo spesso
+in seguito. 
 
 \begin{figure}[!htb]
   \footnotesize \centering
 
 \begin{figure}[!htb]
   \footnotesize \centering
@@ -2263,11 +2264,11 @@ modificarlo con \func{sigprocmask}.
 Resta quindi il problema di cosa succede alla maschera dei segnali quando si
 esce da un manipolatore usando questa funzione. Il comportamento dipende
 dall'implementazione; in particolare BSD ripristina la maschera dei segnali
 Resta quindi il problema di cosa succede alla maschera dei segnali quando si
 esce da un manipolatore usando questa funzione. Il comportamento dipende
 dall'implementazione; in particolare BSD ripristina la maschera dei segnali
-precedente l'invocazione, come per un normale ritorno, mentre SYSV no. Lo
+precedente l'invocazione, come per un normale ritorno, mentre System V no. Lo
 standard POSIX.1 non specifica questo comportamento per \func{setjmp} e
 \func{longjmp}, ed il comportamento delle \acr{glibc} dipende da quale delle
 caratteristiche si sono abilitate con le macro viste in
 standard POSIX.1 non specifica questo comportamento per \func{setjmp} e
 \func{longjmp}, ed il comportamento delle \acr{glibc} dipende da quale delle
 caratteristiche si sono abilitate con le macro viste in
-\secref{sec:intro_gcc_glibc_std}. 
+\secref{sec:intro_gcc_glibc_std}.
 
 Lo standard POSIX però prevede anche la presenza di altre due funzioni
 \func{sigsetjmp} e \func{siglongjmp}, che permettono di decidere quale dei due
 
 Lo standard POSIX però prevede anche la presenza di altre due funzioni
 \func{sigsetjmp} e \func{siglongjmp}, che permettono di decidere quale dei due
@@ -2298,6 +2299,24 @@ ripristinata in un successivo \func{siglongjmp}; quest'ultima funzione, a
 parte l'uso di \type{sigjmp\_buf} per \param{env}, è assolutamente identica a
 \func{longjmp}.
 
 parte l'uso di \type{sigjmp\_buf} per \param{env}, è assolutamente identica a
 \func{longjmp}.
 
+\begin{prototype}{signal.h}
+{int sigaltstack(const stack\_t *ss, stack\_t *oss)}
+  
+Installa un nuovo stack per i segnali.
+  
+  \bodydesc{La funzione restituisce zero in caso di successo e -1 per un
+    errore, nel qual caso \var{errno} assumerà i valori:
+
+  \begin{errlist}
+  \item[\macro{ENOMEM}] La dimensione specificata per il nuovo stack è minore
+  di \macro{MINSIGSTKSZ}.
+  \item[\macro{EPERM}] Uno degli indirizzi non è valido.
+  \item[\macro{EFAULT}] Si è cercato di cambiare lo stack alternativo mentre
+  questo è attivo (cioè il processo è in esecuzione su di esso).
+  \item[\macro{EINVAL}] \param{ss} non è nullo e \var{ss\_flags} contiene un
+  valore diverso da zero che non è \macro{SS\_DISABLE}.
+  \end{errlist}}
+\end{prototype}