MSGCTL(2) | Manual del Programador de Linux | MSGCTL(2) |
msgctl - operaciones para el control de mensajes
nf #include <sys/types.h> #include
<sys/ipc.h> #include <sys/msg.h>
int msgctl(int msqid, int cmd, struct msqid_ds *buf);
Esta función ejecuta la operación especificada por cmd en la cola de mensajes con el identificador msqid. Valores legales para cmd son:
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.
Si ha funcionado, el valor devuelto sera 0, en otro caso -1 con errno indicando el error
Ante un error errno sera fijado a uno de los siguientes valores:
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.)
SVr4, SVID. SVID no documenta el error EIDRM.
18 febrero 2001 | Linux 2.4.1 |