bionic (2) msgctl.2.gz

Provided by: manpages-es_1.55-10_all bug

NOMBRE

       msgctl - operaciones para el control de mensajes

SINOPSIS

       nf #include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h>

       int msgctl(int msqid, int cmd, struct msqid_ds *buf);

DESCRIPCIÓN

       Esta función ejecuta la operación especificada por cmd en la cola de mensajes con el identificador msqid.
       Valores legales para cmd son:

       IPC_STAT
              Copia información desde la estructura de  datos  mensaje  asociada  con  msqid  en  la  estructura
              apuntada por buf.  El invocador debe tener permiso de lectura en la cola de mensajes.

       IPC_SET
              Escribe los valores de algunos miembros de la estructura msqid_ds apuntada por buf a la estructura
              de datos cola de mensajes, actualizando su componente msg_ctime  Los  siguientes  miembros  de  la
              estructura pueden ser actualizados:

                   msg_perm.uid
                   msg_perm.gid
                   msg_perm.mode  /* solo los 9 bits más bajos */
                   msg_qbytes

              El proceso invocador debe tener los privilegios adecuados (probablemente, root) o su identificador
              de usuario efectivo debe ser aquel del creador (msg_perm.cuid) o del propietario (msg_perm.uid) de
              la  cola  de  mensajes.   Se requieres privilegios adecuados (probablemente, root) para superar el
              valor msg_qbytes por encima del valor del sistema MSGMNB.

       IPC_RMID
              Elimina la cola de mensajes y sus estructuras de datos asociadas despertando a todos los  procesos
              en  espera  de  lectura  o  escritura  (devolviendo un valor de error y asignando a errno el valor
              EIDRM).  El proceso invocador debe tener los privilegios  adecuados  (probablemente,  root)  o  su
              identificador  de  usuario  efectivo  debe  ser  aquel del creador o del propietario de la cola de
              mensajes.

VALOR DEVUELTO

       Si ha funcionado, el valor devuelto sera 0, en otro caso -1 con errno indicando el error

ERRORES

       Ante un error errno sera fijado a uno de los siguientes valores:

       EACCES     El argumento cmd es igual a IPC_STAT pero el proceso invocador no tiene  permisos  de  lectura
                  sobre la cola de mensajes msqid.

       EFAULT     El  argumento  cmd  tiene el valor IPC_SET o IPC_STAT pero la dirección apuntada por buf no es
                  accesible.

       EIDRM      La cola de mensajes ha sido eliminada.

       EINVAL     Valor incorrecto de cmd o msqid.

       EPERM      El argumento cmd tiene el valor  IPC_SET  o  IPC_RMID  pero  el  proceso  invocador  no  tiene
                  suficientes privilegios para ejecutar la orden.

OBSERVACIONES

       Las  llamadas  IPC_INFO, MSG_STAT y MSG_INFO son utilizadas por el programa ipcs(8) a fin de proporcionar
       información de los recursos asignados.  En el futuro esto puede ser modificado segun  las  necesitades  o
       trasladado al interfaz /proc.

       Varios  campos  de  la  estructura  msqid_ds eran de tipo entero corto bajo Linux 2.2 y se convirtieron a
       enteros largos bajo Linux 2.4. Para sacar provecho de ésto, una recompilación  bajo  glibc-2.1.91  o  una
       versión  posterior  debería  bastar.   (El  núcleo  distingue las llamadas antiguas de las nuevas por una
       bandera IPC_64 en cmd.)

CONFORME A

       SVr4, SVID.  SVID no documenta el error EIDRM.

VÉASE TAMBIÉN

       ipc(5), msgget(2), msgsnd(2), msgrcv(2)