Message queue reciever
Thu Jun 06 2024 00:59:59 GMT+0000 (Coordinated Universal Time)
Saved by
@login
#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;
}
content_copyCOPY
Comments