Advertisement
kikosiak

Untitled

Nov 26th, 2019
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.05 KB | None | 0 0
  1. #include"bib.h"
  2.  
  3. int *shmp;
  4. int semid;
  5. int shmid;
  6.  
  7. void zakoncz()
  8. {
  9.     printf("\nKoniec!\n");
  10.     if(shmdt(shmp)<0) perror("Blad odlaczania pamieci dzielonej");
  11.     if(semctl(semid,0,IPC_RMID,0)<0) perror("Blad usuwania zbioru semaforow");
  12.     if(shmctl(shmid,IPC_RMID,NULL)<0) perror("Blad usuwania pamieci dzielonej");
  13.     exit(1);
  14. }
  15. int main(){
  16.     signal(SIGINT,zakoncz);
  17.     srand(time(NULL));
  18.  
  19.     shmid= shmget(ftok("server.c",1), sizeof(int),IPC_CREAT | IPC_EXCL | PERMS);
  20.     if (shmid==-1){
  21.         perror("Blad tworzenia pamieci dzielonej");
  22.     }
  23.     shmp = shmat(shmid,0, 0);
  24.     if (shmp==NULL){
  25.         perror("Blad dolaczania pamieci dzielonej");
  26.     }
  27.  
  28.  
  29.     semid = semget(ftok("server.c",1), 2, IPC_CREAT | IPC_EXCL | PERMS);
  30.     if  (semid < 0){
  31.         perror("blad tworzenia zbioru semaforow");
  32.     }
  33.  
  34.         odblokuj_semafor2(semid);
  35.     int liczba=1;
  36.  
  37.     while(1){
  38.  
  39.         blokuj_semafor2(semid);
  40.         *shmp=liczba;
  41.         liczba++;
  42.         odblokuj_semafor1(semid);    
  43.     }
  44.     return 0;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement