Linux message sequence (inter-process communication) [cpp] # include <stdlib. h> # include <stdio. h> # include <string. h> # include <errno. h> # include <unistd. h> # include <sys/types. h> # include <sys/ipc. h> # include <sys/msg. h> www.2cto.com // The Message Queue structure struct msgStuct {long int msgType; char strMsg [1024] ;}; int main () {struct msgStuct msg_data; int msgid; char buffer [1024]; // create a message queue if (msgid = msgget (key_t) 2234,066 6 | IPC_CREAT) =-1) {www.2cto.com perror ("msgget failed with error: % d \ n"); exit (EXIT_FAILURE);} while (1) {printf ("Send message :"); fgets (buffer, 1024, stdin); // initialize the Message Type msg_data.msgType = 1; strcpy (msg_data.strMsg, buffer); // send the message if (msgsnd (msgid, (void *) & msg_data, 1024, 0) =-1) {fprintf (stderr, "msgsnd failed \ n"); exit (EXIT_FAILURE);} if (strncmp (buffer, "end", 3) = 0) {break;} exit (EXIT_SUCCESS);} www.2cto.com [cpp] # include <stdlib. h> # include <stdio. h> # include <string. h> # include <errno. h> # include <unistd. h> # include <sys/types. h> # include <sys/ipc. h> # include <sys/msg. h> // The Message Queue structure struct msgStuct {long int msgType; char strMsg [1024] ;}; int main () {www.2cto.com int msgid; struct msgStuct msg_data; // receive message priority long int msgPriority = 0; // obtain the first message queue from the queue // create a message queue
If (msgid = msgget (key_t) 2234,066 6 | IPC_CREAT) =-1) // create a file like open () and return its file descriptor, here is the message sequence {perror ("msgget failed with error"); exit (EXIT_FAILURE);} while (1) {// receive the message if (msgrcv (msgid, (void *) & msg_data, 1024, msgPriority, 0) =-1) {perror ("msgrcv failed with error"); exit (EXIT_FAILURE);} printf ("Received message: % s ", msg_data.strMsg); if (strncmp (msg_data.strMsg," end ", 3) = 0) {www.2cto.com break ;}// Delete the Message Queue if (msgctl (msgid, IPC_RMID, 0) =-1) {fprintf (stderr, "delete messagequeue error \ n"); exit (EXIT_FAILURE);} exit (EXIT_SUCCESS);} the first one is send. c. The second is recieve. c