Provided by: manpages-es-dev_4.13-4_all bug

NOMBRE

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

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.

VERSIONES

       sigqueue()  and the underlying rt_sigqueueinfo()  system call first appeared in Linux 2.2.

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 │
       └───────────┴────────────────────┴───────────────────┘

CONFORME A

       POSIX.1-2001, POSIX.1-2008.

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.

   Diferencias kernel / 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() */

VÉASE TAMBIÉN

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

COLOFÓN

       Esta página es parte de la versión 5.10 del proyecto Linux man-pages. Puede encontrar  una
       descripción  del  proyecto, información sobre cómo informar errores y la última versión de
       esta página en https://www.kernel.org/doc/man-pages/.

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 ⟨⟩.