Provided by: manpages-es_1.55-10_all bug

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)