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)

Linux 2.4.18                                      7 junio 2002                                    SIGWAITINFO(2)