Provided by: manpages-es_1.55-10_all 

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)
Linux 2.4.1 18 febrero 2001 MSGCTL(2)