oracular (3) sigqueue.3.gz

Provided by: manpages-es-dev_4.23.1-1_all bug

NOMBRE

       sigqueue - envía una señal y un bloque de datos a un proceso

BIBLIOTECA

       Biblioteca Estándar C (libc, -lc)

SINOPSIS

       #include <signal.h>

       int sigqueue(pid_t pid, int sig, const union sigval value);

   Requisitos de Macros de Prueba de Características para glibc (véase feature_test_macros(7)):

       sigqueue():
           _POSIX_C_SOURCE >= 199309L

DESCRIPCIÓN

       sigqueue()   envía  la señal especificada en sig al proceso cuyo identificador de proceso es dado en pid.
       Los permisos requeridos para enviar la señal son los mismos que para kill(2).  Como pasa con kill(2),  la
       señal 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 acompañante (o bien un entero o un
       puntero) que se enviará con la señal, y que tiene el siguiente tipo:

           union sigval {
               int   sival_int;
               void *sival_ptr;
           };

       Si el proceso receptor tiene un manejador instalado para esta señal usando la  opción  SA_SIGINFO  en  la
       llamada  a  sigaction(2),  puede obtener los datos a través del campo si_value de la estructura siginfo_t
       pasada como segundo argumento al manejador.  Además, se asignará al campo si_code de esta  estructura  el
       valor SI_QUEUE.

VALOR DEVUELTO

       En  caso  de  éxito,  sigqueue()   devuelve  0, indicando que la señal fue ennviada satisfactoriamente al
       proceso receptor.  En otro caso se devuelve -1 y errno se modifica para indicar el error.

ERRORES

       EAGAIN Se alcanzó el límite de señales que puede ser encolado.  (Véase signal(7) para más información.)

       EINVAL sig es inválido.

       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 ningún proceso cuyo identificador de proceso coincida con pid.

ATRIBUTOS

       Para obtener una explicación de los términos usados en esta sección, véase attributes(7).

       ┌───────────────────────────────────────────────────────────────┬────────────────────┬───────────────────┐
       │InterfazAtributoValor             │
       ├───────────────────────────────────────────────────────────────┼────────────────────┼───────────────────┤
       │sigqueue()                                                     │ Seguridad del hilo │ Multi-hilo seguro │
       └───────────────────────────────────────────────────────────────┴────────────────────┴───────────────────┘

VERSIONES

   Diferencias núcleo / 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() */

ESTÁNDARES

       POSIX.1-2008.

HISTORIAL

       Linux 2.2.  POSIX.1-2001.

NOTAS

       Si esta función termina por enviar una señal al proceso que la invocó, y esa señal no fue  bloqueada  por
       el  hilo  invocador,  y  no  hay  otros  hilos  dispuestos  a manejar esta señal (ya sea porque la tienen
       desbloqueada o porque la esperan con sigwait(3)), entonces deberá enviarse al menos alguna señal  a  este
       hilo antes de que esta función regrese.

VÉASE TAMBIÉN

       kill(2), rt_sigqueueinfo(2), sigaction(2), signal(2), pthread_sigqueue(3), sigwait(3), signal(7)

TRADUCCIÓN

       La traducción al español de esta página del manual fue creada por Miguel Pérez Ibars <mpi79470@alu.um.es>

       Esta   traducción   es   documentación   libre;   lea   la   GNU   General   Public   License  Version  3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ o posterior con respecto a las condiciones de copyright.   No
       existe NINGUNA RESPONSABILIDAD.

       Si  encuentra  algún  error  en  la  traducción  de esta página del manual, envíe un correo electrónico a
       ⟨debian-l10n-spanish@lists.debian.org⟩.