Provided by: manpages-es_1.55-10_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)