Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //writer.c
- #include <stdio.h>
- #include <sys/ipc.h>
- #include <sys/msg.h>
- // structure for message queue
- struct mesg_buffer {
- int mesg_type;
- int a[5];
- } message;
- int main()
- {
- message.a [0] = 5;
- message.a [1] = 10;
- message.a [2] = 15;
- message.a [3] = 34;
- message.a [4] = 34;
- key_t key;
- int msgid;
- // ftok to generate unique key
- key = ftok(".", 65);
- // msgget creates a message queue
- // and returns identifier
- msgid = msgget(key, 0666 | IPC_CREAT);
- message.mesg_type = 1;
- // msgsnd to send message
- for(int i=0;i<5;i++)
- msgsnd(msgid, (int *) &message.a[i], sizeof(message.a), 0);
- // display the message
- for(int i=0;i<5;i++)
- printf("Data send is : %d n", message.a[i]);
- return 0;
- }
- // C Program for Message Queue (Reader Process)
- #include <stdio.h>
- #include <sys/ipc.h>
- #include <sys/msg.h>
- // structure for message queue
- struct mesg_buffer {
- int mesg_type;
- int a[5];
- } message;
- int main()
- {
- key_t key;
- int msgid;
- // ftok to generate unique key
- key = ftok(".", 65);
- // msgget creates a message queue
- // and returns identifier
- msgid = msgget(key, 0666 | IPC_CREAT);
- // msgrcv to receive message
- for(int i=0; i<5; i++)
- msgrcv(msgid, &message, sizeof(message.a[i]), 1, 0);
- for(int i=0; i<5; i++)
- printf("Data Received is : %d n",
- message.a[i]);
- // to destroy the message queue
- msgctl(msgid, IPC_RMID, NULL);
- return 0;
- }
Add Comment
Please, Sign In to add comment