|
|||||||
|
|
MSGGETSection: Manual del Programador de Linux (2)Updated: 1 noviembre 1993 Index Return to Main Contents NOMBREmsgget - devuelve el identificador para una cola de mensajesSINOPSIS# include <sys/types.h> # include <sys/ipc.h> # include <sys/msg.h> int msgget ( key_t key, int msgflg ) DESCRIPCIÓNLa función devuelve el identificador de la cola de mensajes asociada a key. Se crea una nueva cola de mensajes si key tiene el valor IPC_PRIVATE, o si key no es IPC_PRIVATE pero no existe ninguna cola de mensajes asociada a key, y IPC_CREAT se inserta en msgflg (esto es, msgflg&IPC_CREAT es distinto de cero). La presencia en msgflg de los campos IPC_CREAT y IPC_EXCL desempeñan el mismo papel, con respecto a la existencia de la cola de mensajes, que O_CREAT y O_EXCL en el argumento "mode" de la llamada al sistema open(2), es decir, la función msgget falla si msgflg inserta IPC_CREAT y IPC_EXCL y ya esiste una cola de mensajes para key.En la creación, los 9 bits más bajos del argumento msgflg definen los permisos de acceso a la cola de mensajes. Estos bits para los permisos tienen la misma forma y semántica que los de los permisos de acceso en las llamadas al sistema open(2) o creat(2) (Los permisos de ejecución no son usados.) Además, durante la creación, la llamada al sistema inicializa la estructura de datos del sistema para la cola msqid_ds como se muestra:
Si la cola de mensajes ya existe, se verifican los permisos de acceso, y ser realiza una comprobación a fin de verificar si está marcada para su destrucción. VALOR DEVUELTOSi ha funcionado correctamente, devuelve el idenficador para la cola de mensajes (un entero no negativo), en otro caso -1 con errno indicando el error.ERRORESCuando se produzca un error, errno tendrá uno de los siguientes valores:
NOTASIPC_PRIVATE no es un campo de tipo bandera, es del tipo key_t Si este valor especial es utilizado por key, la llamada al sistema ignorará todo excepto los 9 bits de menor orden de msgflg y crea una nueva cola de mensajes (si ha funcionado).Lo siguiente es una limitación en los recursos del sistema que afecta a la llamada msgget
ERRORESEl uso de IPC_PRIVATE no prohibe a otros procesos tener acceso a la cola de mensajes creada.Como en el caso de los ficheros, no existe una forma intrínseca de asegurar el acceso exclusivo a la cola de mensajes. Insertando IPC_CREAT y IPC_EXCL en msgflg sólo garantiza que la nueva cola de mensajes será creada, no implica acceso exclusivo a la cola de mensajes. CONFORME ASVr4, SVID. SVr4 no documenta el código de error EIDRM.VÉASE TAMBIÉNftok(3), ipc(5), msgctl(2), msgsnd(2), msgrcv(2)
Index | ||||||
|
|
|
Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account Document on this page is part of "Linuxinfor Man Pages in HTML Format: man2". See Index Page for more info about Authorship and Copyright. 1999-2008 Linuxinfor.com. No rights reserved. |