#include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h> #include <stdio.h> #include <stdlib.h> struct msgbuf { long mtype; char mtext[100]; }; int main() { key_t key; int msgid; struct msgbuf received; // Generate unique key key = ftok("progfile", 65); // Create message queue and return identifier msgid = msgget(key, 0666 | IPC_CREAT); if (msgid == -1) { perror("msgget"); exit(EXIT_FAILURE); } // Receive the message if (msgrcv(msgid, &received, sizeof(received.mtext), 1, 0) == -1) { perror("msgrcv"); exit(EXIT_FAILURE); } printf("Message received: %s\n", received.mtext); // Destroy the message queue if (msgctl(msgid, IPC_RMID, NULL) == -1) { perror("msgctl"); exit(EXIT_FAILURE); } return 0; }