{La funzione ritorna $0$ in caso di successo e $-1$ per un errore, nel qual
caso \var{errno} assumerà uno dei valori:
\begin{errlist}
- \item[\errcode{EFAULT}] si sono specificati indirizzi non validi.
- \item[\errcode{EINVAL}] si è specificato un numero di segnale invalido.
+ \item[\errcode{EFAULT}] l'indirizzo di \param{mask} non è valido.
+ \item[\errcode{EINTR}] la funzione è stata interrotta da un segnale.
\end{errlist}
}
\end{funcproto}
+La funzione imposta la maschera dei segnali indicata da \param{mask} e pone in
+attesa il processo. Ritorna solo con la ricezione di un segnale, con un errore
+di \errval{EINTR}, a meno che il segnale non termini il processo.
+
Come esempio dell'uso di queste funzioni proviamo a riscrivere un'altra volta
l'esempio di implementazione di \code{sleep}. Abbiamo accennato in
sez.~\ref{sec:sig_sigaction} come con \func{sigaction} sia possibile bloccare
\fdecl{int sigwait(const sigset\_t *set, int *sig)}
\fdesc{Attende la ricezione di un segnale.}
}
-{La funzione ritorna $0$ in caso di successo e $-1$ per un errore, nel qual
- caso \var{errno} assumerà uno dei valori:
+{La funzione ritorna $0$ in caso di successo ed un valore positivo in caso di
+ errore con valore secondo la lista seguente:
\begin{errlist}
- \item[\errcode{EINTR}] la funzione è stata interrotta.
- \item[\errcode{EINVAL}] si è specificato un valore non valido per
+ \item[\errcode{EINVAL}] \param{set} contiene un numero di segnale non valido
\end{errlist}
ed inoltre \errval{EFAULT} nel suo significato generico.}
\end{funcproto}