Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdio.h"
- #include "sys/ipc.h"
- #include "sys/sem.h"
- #include "sys/shm.h"
- #define true 1
- int main() {
- key_t key;
- key = 5555;
- int semafor = semget(key, 1, IPC_CREAT | 0666);
- int shared_segment = shmget(key, 100, IPC_CREAT | 0666);
- char* shared_memory;
- semctl(semafor, 0, SETVAL, 1);
- struct sembuf semlock = { 0, -1, 0 };
- struct sembuf semunlock = { 0, 1, 0 };
- int znak = 0;
- while(true)
- {
- char mess[255];
- znak = getchar();
- if(znak == 49)
- {
- semop(semafor, &semlock, 1);
- printf("Zablokowano! Podaj wiadomość\n");
- shared_memory = (char*) shmat(shared_segment, 0, 0);
- scanf("%s",mess);
- sprintf (shared_memory, mess);
- }
- if(znak == 50)
- {
- shmdt(shared_memory);
- semop(semafor, &semunlock, 1);
- printf("Odblokowano\n");
- }
- if(znak == 120)
- {
- printf("Kończę\n");
- semctl(semafor, 0, IPC_RMID);
- break;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement