Guest User

Untitled

a guest
Dec 18th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. //writer.c
  2.  
  3. #include <stdio.h>
  4. #include <sys/ipc.h>
  5. #include <sys/msg.h>
  6.  
  7. // structure for message queue
  8. struct mesg_buffer {
  9. int mesg_type;
  10. int a[5];
  11.  
  12. } message;
  13.  
  14. int main()
  15. {
  16. message.a [0] = 5;
  17. message.a [1] = 10;
  18. message.a [2] = 15;
  19. message.a [3] = 34;
  20. message.a [4] = 34;
  21.  
  22. key_t key;
  23. int msgid;
  24.  
  25. // ftok to generate unique key
  26. key = ftok(".", 65);
  27.  
  28. // msgget creates a message queue
  29. // and returns identifier
  30. msgid = msgget(key, 0666 | IPC_CREAT);
  31. message.mesg_type = 1;
  32.  
  33. // msgsnd to send message
  34. for(int i=0;i<5;i++)
  35. msgsnd(msgid, (int *) &message.a[i], sizeof(message.a), 0);
  36.  
  37.  
  38.  
  39. // display the message
  40. for(int i=0;i<5;i++)
  41. printf("Data send is : %d n", message.a[i]);
  42.  
  43. return 0;
  44. }
  45.  
  46. // C Program for Message Queue (Reader Process)
  47. #include <stdio.h>
  48. #include <sys/ipc.h>
  49. #include <sys/msg.h>
  50.  
  51. // structure for message queue
  52. struct mesg_buffer {
  53. int mesg_type;
  54. int a[5];
  55. } message;
  56.  
  57. int main()
  58. {
  59. key_t key;
  60. int msgid;
  61.  
  62. // ftok to generate unique key
  63. key = ftok(".", 65);
  64.  
  65. // msgget creates a message queue
  66. // and returns identifier
  67. msgid = msgget(key, 0666 | IPC_CREAT);
  68.  
  69. // msgrcv to receive message
  70. for(int i=0; i<5; i++)
  71. msgrcv(msgid, &message, sizeof(message.a[i]), 1, 0);
  72.  
  73. for(int i=0; i<5; i++)
  74. printf("Data Received is : %d n",
  75. message.a[i]);
  76.  
  77. // to destroy the message queue
  78. msgctl(msgid, IPC_RMID, NULL);
  79.  
  80. return 0;
  81. }
Add Comment
Please, Sign In to add comment