Advertisement
Guest User

Untitled

a guest
Dec 10th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. #include "stdio.h"
  2. #include "sys/ipc.h"
  3. #include "sys/sem.h"
  4. #include "sys/shm.h"
  5. #define true 1
  6. int main() {
  7. key_t key;
  8. key = 5555;
  9. int semafor = semget(key, 1, IPC_CREAT | 0666);
  10. int shared_segment = shmget(key, 100, IPC_CREAT | 0666);
  11. char* shared_memory;
  12. semctl(semafor, 0, SETVAL, 1);
  13. struct sembuf semlock = { 0, -1, 0 };
  14. struct sembuf semunlock = { 0, 1, 0 };
  15. int znak = 0;
  16.  
  17. while(true)
  18. {
  19. char mess[255];
  20. znak = getchar();
  21. if(znak == 49)
  22. {
  23. semop(semafor, &semlock, 1);
  24. printf("Zablokowano! Podaj wiadomość\n");
  25. shared_memory = (char*) shmat(shared_segment, 0, 0);
  26. scanf("%s",mess);
  27. sprintf (shared_memory, mess);
  28. }
  29. if(znak == 50)
  30. {
  31. shmdt(shared_memory);
  32. semop(semafor, &semunlock, 1);
  33. printf("Odblokowano\n");
  34. }
  35. if(znak == 120)
  36. {
  37. printf("Kończę\n");
  38. semctl(semafor, 0, IPC_RMID);
  39. break;
  40. }
  41. }
  42.  
  43. return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement