Provided by: manpages-es_1.55-9_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)