Prólogo:
Una cola de mensajes es una lista enlazada de mensajes. Puede pensar en un mensaje como un registro con un formato específico y una prioridad específica. Un proceso que tiene acceso de escritura a la cola de mensajes puede agregarle nuevos mensajes de acuerdo con ciertas reglas; un proceso que tiene permiso de lectura a la cola de mensajes puede leer el mensaje de la cola de mensajes.
Función:
1. Cree una nueva cola de mensajes u obtenga una cola de mensajes existente
Prototipo:
int msgget (key_t key, int msgflg);
Parámetro:
key: se puede considerar como El número de puerto también puede ser generado por la función ftok.
msgflg: valor de IPC_CREAT, si no hay tal cola, cree uno y devuelva un nuevo identificador; si ya existe, devuelva el identificador original.
valor de IPC_EXCL, -1 si no hay tal cola, o 0 si ya existe.
2 a la cola de mensajes leer /escribir
Prototipo :.
msgrcv mensaje de acceso de la cola:
ssize_t msgrcv (int msqid, void * msgp, size_t msgsz, a largo msgtyp, int msgflg);
msgsnd datos en la cola de mensajes:
int msgsnd (int msqid, const void * msgp, size_t msgsz, int msgflg);
parámetro:
msqid: ID de la cola de mensajes
msgp: puntero al búfer de mensajes. Esta ubicación se utiliza para almacenar temporalmente los mensajes enviados y recibidos. Es una estructura general definible por el usuario, en la siguiente forma: Br> struct msgstru {mtype largo; //mayor que 0 char mtext [512];};
msgsz: el tamaño del mensaje.
msgtyp: La forma del mensaje leído desde la cola de mensajes. Si el valor es cero, significa que se leerán todos los mensajes en la cola de mensajes.
msgflg: se utiliza para indicar las acciones que debe realizar el programa central si no hay datos en la cola. Si la combinación IPC_NOWAIT msgflg constante, si la cola de mensajes está llena, en msgsnd msgsnd () Ejecutar () no será bloqueado, pero devuelve inmediatamente -1 si el msgrcv ejecución (), entonces la cola de mensajes estaba vacía Cuando no espere, devuelva inmediatamente -1 y configure el código de error en ENOMSG. Cuando msgflg es 0, msgsnd () y msgrcv () toman el modo de espera de bloqueo cuando la cola está llena o vacía.
atributos
3 cola de mensajes Conjunto
Prototipo:
int msgctl (int msgqid, int cmd estructura msqid_ds * buf);
sistema de parámetros :. msgctl llamada al msgqid identificado colas de mensajes operación cmd, el sistema define tres operación cmd: IPC_STAT, IPC_SET, IPC_RMIDIPC_STAT: este comando se utiliza para obtener la estructura de datos msqid_ds correspondiente a la cola de mensajes, y lo guarda en la buf espacio de direcciones especificado. IPC_SET: este comando se usa para establecer las propiedades de la cola de mensajes. Los atributos que se deben configurar se almacenan en buf.
IPC_RMID: Elimine la cola de mensajes identificada por msqid del kernel.
Instancia:
Remitente del mensaje: send.c
/*send.c*/#include < stdio.h > #include < sys /types.h > # incluir < sys /ipc.h > # include < sys /msg.h > # include < errno.h > #define MSGKEY 1024struct msgstru {long msgtype; charla msgText [2048];}; main () {msgstru struct msgs; int Msg_type; Char str [256]; int ret_value; int msqid; msqid = msgget (MSGKEY, IPC_EXCL); /* comprobar la cola de mensajes si hay * /if (msqid < 0) {msqid = msgget (MSGKEY, IPC_CREAT
1. Obtenga privilegios de root sin iniciar sesión. Si no configura la contraseña de GRUB, podemos
Varios Linux Ahora el tema, sombrero rojo Enterprise Edition es relativamente seguro. Para la vers
Gentoo Linux Caozuojitong (pronunciado /dʒɛntuː /) es un meta-distribución de las distribuciones de
Bajo Linux es un método de instalación de software regular, además de la forma binaria de distribuci
Linux cliente SSHD solución confusa chino
Proceso de inicio del sistema operativo Linux detallado
Administración y mantenimiento de sistemas Linux - comando telnet
Los comandos de red más utilizados en los sistemas Linux y Unix
Los controladores de dispositivos I2C asociación
Cómo acceder a la partición de Windows bajo Linux
Código de luz del agua del ensamblaje Tiny4412, operación con LED de metal descubierto Tiny4412
Cómo modificar el nombre de la computadora Linux
Configurar comando para ordenar
comando comando de descompresión de compresión Daquan Linux /Linux paquete de Daquan
Configuración de la cuota de disco para la base de datos MySQL de Linux
Tamaño de fuente de texto de la interfaz personalizada del sistema Windows 7
Win7 escritorio remoto trucos trucos dos
Win7 mensaje de error de arranque del sistema 0XC000000F cómo hacerlo?
Desactive por completo los efectos que Windows 7 no necesita para aumentar la velocidad del sistema
Eliminar otras cuentas de usuario del sistema operativo Windows 8
La computadora Win7 aparece en la red no reconocida cómo hacerlo
La herramienta XP Explorer no tiene "opciones de carpeta" ¿cómo solucionarlo?
Acelerar el método de velocidad de descompresión WinRAR es muy simple