.\" Copyright (c) 2002 Michael kerrisk .\" .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" .\" Traducido por Miguel Pérez Ibars el 5-julio-2004 .\" .TH SIGWAITINFO 2 "7 junio 2002" "Linux 2.4.18" "Manual del Programador de Linux" .SH NOMBRE sigwaitinfo, sigtimedwait \- espera síncrona de señales encoladas .SH SINOPSIS .B #include .sp .BI "int sigwaitinfo(const sigset_t *" set ", siginfo_t *" info ");" .sp .BI "int sigtimedwait(const sigset_t *" set ", siginfo_t *" info ", " .BI "const struct timespec " timeout ");" .SH DESCRIPCIÓN .BR sigwaitinfo () suspende la ejecución del proceso invocador hasta que se comunica una de las señales en .I set. (Si una de las señales en .I set ya está siendo esperada por el proceso invocador, .BR sigwaitinfo () regresará inmediatamente con información sobre la señal.) .BR 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 .I info es distinto de .BR NULL , devuelve una estructura del tipo .I siginfo_t (véase .BR sigaction (2)) que contiene información sobre la señal. .PP Las señales devueltas via .BR sigwaitinfo () son comunicadas en el orden habitual; véase .BR signal (7) para más detalles. .PP .BR sigtimedwait () opera de la misma forma que .BR sigwaitinfo () salvo que tiene un argumento adicional, .IR timeout , que habilita un límite superior de tiempo en el que el proceso puede estar suspendido. Este argumento es del siguiente tipo: .sp .in +2n .nf struct timespec { long tv_sec; /* seconds */ long tv_nsec; /* nanoseconds */ } .fi .in -2n .sp Si ambos campos de esta estructura tienen valor 0, se realiza un sondeo: .BR 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 .I set. .SH "VALOR DEVUELTO" En caso de éxito, tanto .BR sigwaitinfo () como .BR sigtimedwait () devuelven un número de señal (un valor mayor que cero). En caso de fallo ambas llamadas devuelven \-1, y modifican .I errno para reflejar el error. .SH ERRORES .TP .B EAGAIN No se comunicó ninguna señal en .I set dentro del período .I timeout especificado a .BR sigtimedwait (). .TP .B EINVAL .I timeout inválido. .TP .B 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 .IR set .) .SH OBSERVACIONES Si se usa normalmente, el invocador bloquea las señales en .I set a través de una llamada previa a .BR sigprocmask () (para que la acción por defecto para estas señales no tenga efecto si son comunicadas entre sucesivas llamadas a .BR sigwaitinfo () o .BR sigtimedwait()) y no establece manejadores para estas señales. .PP POSIX deja como indefinido el significado de un valor .B NULL para el argumento .I timeout de .BR sigtimedwait () , permitiendo la posibilidad de que ésta tenga el mismo significado que una llamada a .BR sigwaitinfo (), y, de hecho, así es lo que está establecido en Linux. .SH "CONFORME A" POSIX 1003.1-2001 .SH "VÉASE TAMBIÉN" .BR kill (2), .BR sigaction (2), .BR signal (2), .BR sigpending (2), .BR sigprocmask (2), .BR sigqueue (2), .BR signal (7), .BR sigsetops (3)