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