Advertisement
Guest User

Untitled

a guest
Mar 25th, 2019
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.90 KB | None | 0 0
  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <sys/msg.h>
  5. #include <sys/types.h>
  6. #include <sys/ipc.h>
  7. #include <string.h>
  8.  
  9. #define CLEF 20
  10.  
  11. struct msgbuf {
  12. long mtype; //type
  13. int a;
  14. int b;
  15. double resultat;
  16. char operande[1];
  17. int quitter;
  18. };
  19.  
  20. struct msgbuf msgp;
  21.  
  22. int main(void)
  23. {
  24.     int msqid;
  25.  
  26.     msqid = msgget((key_t)CLE, 0750+IPC_CREAT); //crea message
  27.     printf("Link started !\n");
  28.  
  29.  
  30.     //recevoir
  31.     do
  32.     {
  33.         msgp.a = 0;
  34.         msgp.b = 0;
  35.         msgp.resultat = 0.;
  36.         msgp.quitter = 0;
  37.  
  38.         msgrcv(msqid, &msgp, sizeof(msgp), 0, NULL);
  39.         if(strcmp(msgp.operande, "+") == 0)
  40.         {
  41.             msgp.resultat = msgp.a + msgp.b;
  42.             msgsnd(msqid, &msgp, sizeof(msgp), NULL);
  43.         }
  44.         else if (strcmp(msgp.operande, "-") == 0)
  45.         {
  46.             msgp.resultat = msgp.a - msgp.b;
  47.             msgsnd(msqid, &msgp, sizeof(msgp), NULL);
  48.         }
  49.  
  50.     }while(msgp.quitter == 0);
  51.  
  52.     msgctl(msqid, IPC_RMID, IPC_NOWAIT);
  53.     return 0;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement