sigqueue(3) Library Functions Manual sigqueue(3) NOMBRE sigqueue - envia una senal y un bloque de datos a un proceso BIBLIOTECA Biblioteca Estandar C (libc, -lc) SINOPSIS #include int sigqueue(pid_t pid, int sig, const union sigval value); Requisitos de Macros de Prueba de Caracteristicas para glibc (vease feature_test_macros(7)): sigqueue(): _POSIX_C_SOURCE >= 199309L DESCRIPCION sigqueue() envia la senal especificada en sig al proceso cuyo identificador de proceso es dado en pid. Los permisos requeridos para enviar la senal son los mismos que para kill(2). Como pasa con kill(2), la senal nula (0) puede emplearse para comprobar si existe un proceso con un identificador de proceso dado. El argumento value se utiliza para especificar un bloque de datos acompanante (o bien un entero o un puntero) que se enviara con la senal, y que tiene el siguiente tipo: union sigval { int sival_int; void *sival_ptr; }; Si el proceso receptor tiene un manejador instalado para esta senal usando la opcion SA_SIGINFO en la llamada a sigaction(2), puede obtener los datos a traves del campo si_value de la estructura siginfo_t pasada como segundo argumento al manejador. Ademas, se asignara al campo si_code de esta estructura el valor SI_QUEUE. VALOR DEVUELTO En caso de exito, sigqueue() devuelve 0, indicando que la senal fue ennviada satisfactoriamente al proceso receptor. En otro caso se devuelve -1 y errno se modifica para indicar el error. ERRORES EAGAIN Se alcanzo el limite de senales que puede ser encolado. (Vease signal(7) para mas informacion.) EINVAL sig es invalido. EPERM The process does not have permission to send the signal to the receiving process. For the required permissions, see kill(2). ESRCH No hay ningun proceso cuyo identificador de proceso coincida con pid. ATRIBUTOS Para obtener una explicacion de los terminos usados en esta seccion, vease attributes(7). +-----------------------------+--------------------+-------------------+ |Interfaz | Atributo | Valor | +-----------------------------+--------------------+-------------------+ |sigqueue() | Seguridad del hilo | Multi-hilo seguro | +-----------------------------+--------------------+-------------------+ VERSIONES Diferencias nucleo / biblioteca C On Linux, sigqueue() is implemented using the rt_sigqueueinfo(2) system call. The system call differs in its third argument, which is the siginfo_t structure that will be supplied to the receiving process's signal handler or returned by the receiving process's sigtimedwait(2) call. Inside the glibc sigqueue() wrapper, this argument, uinfo, is initialized as follows: uinfo.si_signo = sig; /* Argument supplied to sigqueue() */ uinfo.si_code = SI_QUEUE; uinfo.si_pid = getpid(); /* Process ID of sender */ uinfo.si_uid = getuid(); /* Real UID of sender */ uinfo.si_value = val; /* Argument supplied to sigqueue() */ ESTANDARES POSIX.1-2008. HISTORIAL Linux 2.2. POSIX.1-2001. NOTAS Si esta funcion termina por enviar una senal al proceso que la invoco, y esa senal no fue bloqueada por el hilo invocador, y no hay otros hilos dispuestos a manejar esta senal (ya sea porque la tienen desbloqueada o porque la esperan con sigwait(3)), entonces debera enviarse al menos alguna senal a este hilo antes de que esta funcion regrese. VEASE TAMBIEN kill(2), rt_sigqueueinfo(2), sigaction(2), signal(2), pthread_sigqueue(3), sigwait(3), signal(7) TRADUCCION La traduccion al espanol de esta pagina del manual fue creada por Miguel Perez Ibars Esta traduccion es documentacion libre; lea la GNU General Public License Version 3 o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD. Si encuentra algun error en la traduccion de esta pagina del manual, envie un correo electronico a . Paginas de manual de Linux 6.06 31 Octubre 2023 sigqueue(3)