1 | initial version |
A two-way communication using message queue in C can be implemented as follows:
int mq_sender_to_receiver = mq_open("/sender_to_receiver", O_CREAT | O_RDWR, 0666, NULL);
int mq_receiver_to_sender = mq_open("/receiver_to_sender", O_CREAT | O_RDWR, 0666, NULL);
pid_t pid = fork();
mq_send()
to send a message to the Receiver.char msg[100] = "Hello, Receiver!";
mq_send(mq_sender_to_receiver, msg, 100, 0);
mq_receive()
to receive the message from the Sender.char msg[100];
mq_receive(mq_sender_to_receiver, msg, 100, NULL);
mq_send()
to send a message to the Sender.char response[100] = "Hello, Sender!";
mq_send(mq_receiver_to_sender, response, 100, 0);
mq_receive()
to receive the message from the Receiver.char response[100];
mq_receive(mq_receiver_to_sender, response, 100, NULL);
if (pid == 0) {
// Sender process
printf("Sender received: %s\n", response);
} else {
// Receiver process
printf("Receiver received: %s\n", msg);
}