msgget
devuelve un identificador System V para una cola de mensajes
- Provided by: manpages-es-dev (Version: 4.29.1-1)
- Source: manpages-l10n
- Report a bug
devuelve un identificador System V para una cola de mensajes
Biblioteca Estándar C (libc, -lc)
#include <sys/msg.h>
int msgget(key_t key, int msgflg);
La llamada al sistema msgget() retorna el identificador de la cola de mensajes System V asociado con el valor del argumento key. Puede utilizarse para obtener el identificador de una cola de mensajes creada previamente, si msgflg es cero y key no tiene el valor IPC_PRIVATE, o también para crear un nuevo conjunto.
Se crea una nueva cola de mensajes si key tiene el valor IPC_PRIVATE o si key no es IPC_PRIVATE, no existe ninguna cola de mensajes con la clave key y se especifica IPC_CREAT en msgflg.
Si msgflg define tanto IPC_CREAT como IPC_EXCL y ya existe una cola de mensajes para key, msgget() falla con errno establecido en EEXIST. Es el mismo efecto que la combinación O_CREAT | O_EXCL para open(2).)
Tras la creación, los bits menos significativos del argumento msgflg definen los permisos de la cola de mensajes. Estos bits de permiso tienen el mismo formato y semántica que los permisos definidos para el argumento mode de open(2). No se usan los permisos de ejecución.
Si se crea una nueva cola de mensajes, la llamada al sistema inicializa la estructura de datos del sistema (consulte msgctl(2)) para la cola msqid_ds como se muestra:
Si la cola de mensajes ya existe, se verifican los permisos, y ser realiza una comprobación a fin de verificar si está marcada para su destrucción.
En caso de éxito, msgget() devuelve el identificador de la cola de mensajes (un entero no negativo). En caso de error, se devuelve -1 y se establece errno para indicar el error.
POSIX.1-2024.
POSIX.1-2001, SVr4.
Hasta Linux 2.3.20, Linux devolvía EIDRM para una función msgget() en una cola de mensajes programada para su eliminación.
IPC_PRIVATE no es un campo de bandera, sino un tipo key_t. Si se usa este valor especial para key, la llamada al sistema ignora todo excepto los 9 bits menos significativos de msgflg y crea una nueva cola de mensajes (en caso de éxito).
Lo siguiente es una limitación en los recursos del sistema que afecta a la llamada msgget():
La elección del nombre IPC_PRIVATE puede que fuera desafortunada, IPC_NEW mostraría más claramente su función.
msgctl(2), msgrcv(2), msgsnd(2), ftok(3), capabilities(7), mq_overview(7), sysvipc(7)
La traducción al español de esta página del manual fue creada por Juan Piernas <piernas@ditec.um.es> y Marcos Fouces <marcos@debian.org>
Esta traducción es documentación libre; lea la GNU General Public License Version 3 o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD.
Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a debian-l10n-spanish@lists.debian.org.