Provided by:
manpages-es_1.55-10_all 
NOMBRE
sigwaitinfo, sigtimedwait - espera sincrona de senales encoladas
SINOPSIS
#include <signal.h>
int sigwaitinfo(const sigset_t *set, siginfo_t *info);
int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct
timespec timeout);
DESCRIPCI'ON
sigwaitinfo() suspende la ejecucion del proceso invocador hasta que se
comunica una de las senales en set. (Si una de las senales en set ya
esta siendo esperada por el proceso invocador, sigwaitinfo() regresara
inmediatamente con informacion sobre la senal.)
sigwaitinfo() elimina la senal comunicada de la lista de senales
pendientes del proceso invocador y devuelve el numero de senal como
resultado. Si el argumento info es distinto de NULL, devuelve una
estructura del tipo siginfo_t (vease sigaction(2)) que contiene
informacion sobre la senal.
Las senales devueltas via sigwaitinfo() son comunicadas en el orden
habitual; vease signal(7) para mas detalles.
sigtimedwait() opera de la misma forma que sigwaitinfo() salvo que
tiene un argumento adicional, timeout, que habilita un limite superior
de tiempo en el que el proceso puede estar suspendido. Este argumento
es del siguiente tipo:
struct timespec {
long tv_sec; /* seconds */
long tv_nsec; /* nanoseconds */
}
Si ambos campos de esta estructura tienen valor 0, se realiza un
sondeo: sigtimedwait() regresa inmediatamente, ya sea con informacion
sobre una senal pendiente para el invocador, o con un error si no habia
senales pendientes en set.
VALOR DEVUELTO
En caso de exito, tanto sigwaitinfo() como sigtimedwait() devuelven un
numero de senal (un valor mayor que cero). En caso de fallo ambas
llamadas devuelven -1, y modifican errno para reflejar el error.
ERRORES
EAGAIN No se comunico ninguna senal en set dentro del periodo timeout
especificado a sigtimedwait().
EINVAL timeout invalido.
EINTR La espera fue interrumpida por un manejador de senales. (Este
manejador se ocupa de una senal distinta de las que hay en set.)
OBSERVACIONES
Si se usa normalmente, el invocador bloquea las senales en set a traves
de una llamada previa a sigprocmask() (para que la accion por defecto
para estas senales no tenga efecto si son comunicadas entre sucesivas
llamadas a sigwaitinfo()o sigtimedwait()) y no establece manejadores
para estas senales.
POSIX deja como indefinido el significado de un valor NULL para el
argumento timeout de sigtimedwait() , permitiendo la posibilidad de que
esta tenga el mismo significado que una llamada a sigwaitinfo(), y, de
hecho, asi es lo que esta establecido en Linux.
CONFORME A
POSIX 1003.1-2001
V'EASE TAMBI'EN
kill(2), sigaction(2), signal(2), sigpending(2), sigprocmask(2),
sigqueue(2), signal(7), sigsetops(3)