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

NOMBRE

       sigwaitinfo, sigtimedwait - espera síncrona de señales 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ÓN

       sigwaitinfo() suspende la ejecución del proceso invocador hasta que  se
       comunica  una  de las señales en set.  (Si una de las señales en set ya
       está siendo esperada por el proceso invocador, sigwaitinfo()  regresará
       inmediatamente con información sobre la señal.)

       sigwaitinfo()  elimina  la  señal  comunicada  de  la  lista de señales
       pendientes del proceso invocador y devuelve el  número  de  señal  como
       resultado.   Si  el  argumento  info  es distinto de NULL, devuelve una
       estructura  del  tipo  siginfo_t  (véase  sigaction(2))  que   contiene
       información sobre la señal.

       Las  señales  devueltas  via  sigwaitinfo() son comunicadas en el orden
       habitual; véase signal(7) para más detalles.

       sigtimedwait() opera de la misma  forma  que  sigwaitinfo()  salvo  que
       tiene  un argumento adicional, timeout, que habilita un límite 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  información
       sobre una señal pendiente para el invocador, o con un error si no había
       señales pendientes en set.

VALOR DEVUELTO

       En caso de éxito, tanto sigwaitinfo() como sigtimedwait() devuelven  un
       número  de  señal  (un  valor  mayor que cero).  En caso de fallo ambas
       llamadas devuelven -1, y modifican errno para reflejar el error.

ERRORES

       EAGAIN No se comunicó ninguna señal en set dentro del  período  timeout
              especificado a sigtimedwait().

       EINVAL timeout inválido.

       EINTR  La  espera  fue interrumpida por un manejador de señales.  (Este
              manejador se ocupa de una señal distinta de las que hay en set.)

OBSERVACIONES

       Si se usa normalmente, el invocador bloquea las señales en set a través
       de una llamada previa a sigprocmask() (para que la acción  por  defecto
       para  estas  señales no tenga efecto si son comunicadas entre sucesivas
       llamadas a sigwaitinfo()o sigtimedwait()) y  no  establece  manejadores
       para estas señales.

       POSIX  deja  como  indefinido  el  significado de un valor NULL para el
       argumento timeout de sigtimedwait() , permitiendo la posibilidad de que
       ésta  tenga el mismo significado que una llamada a sigwaitinfo(), y, de
       hecho, así es lo que está establecido en Linux.

CONFORME A

       POSIX 1003.1-2001

VÉASE TAMBIÉN

       kill(2),  sigaction(2),   signal(2),   sigpending(2),   sigprocmask(2),
       sigqueue(2), signal(7), sigsetops(3)