Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.87 KB | None | 0 0
  1.  
  2. #include "abstractions.c"
  3.  
  4. int main()
  5. {
  6.     int sem_id;
  7.     key_t key = key_gen("./",11 );
  8.     printf("klucz = %lu\n", (int)key); sleep(1);
  9.     sem_create(&sem_id, key); sleep(1);
  10.     char arg[30];
  11.     sprintf(arg, "%d", sem_id);
  12.     int i;
  13.     for(i=0; i<5; i++)
  14.         sem_set(sem_id, i, 0);
  15.     for(i=0; i<3; i++)
  16.     {
  17.         switch(fork())
  18.         {
  19.             case -1:
  20.                 perror("fork error");
  21.                 exit(1);
  22.             case 0:
  23.                 switch(i)
  24.                 {  
  25.                     case 0:
  26.                         if(execl("./P1", "P1", arg, NULL)==-1)
  27.                         {
  28.                             perror("execl error");
  29.                             exit(2);
  30.                         }
  31.                     case 1:
  32.                         if(execl("./P2", "P2", arg, NULL)==-1)
  33.                         {
  34.                             perror("execl error");
  35.                             exit(2);
  36.                         }
  37.                     case 2:
  38.                         if(execl("./P3", "P3", arg, NULL)==-1)
  39.                         {
  40.                             perror("execl error");
  41.                             exit(2);
  42.                         }
  43.                 }
  44.         }
  45.     }
  46.     for(i=0; i<3; i++)
  47.     {
  48.         wait(NULL);
  49.     }
  50.     sem_delete(sem_id);
  51.     exit(0);
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement