Rechercher une page de manuel
msgctl
Langue: es
Version: 18 febrero 2001 (mandriva - 01/05/08)
Section: 2 (Appels système)
NOMBRE
msgctl - operaciones para el control de mensajesSINOPSIS
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 errorERRORES
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)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre