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)