Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <sys/types.h>
- #include <sys/ipc.h>
- #include <sys/sem.h>
- #include <unistd.h>
- #include <sys/types.h>
- #include <sys/wait.h>
- #include "semafor.h"
- int main()
- {
- key_t key = ftok(".",0);
- int semId = semCreate(key);
- semInit(semId);
- int PID = fork();
- if(PID == -1)
- {
- perror("Blad tworzenia procesu\n");
- exit(1);
- }
- else if(PID == 0)
- {
- int j=1;
- for(int i=0;i<5;i++)
- {
- semDown(semId);
- printf("PID%d(%d) = %d\n",i+1,j++,getpid());
- printf("PID%d(%d) = %d\n",i+1,j++,getpid());
- printf("PID%d(%d) = %d\n",i+1,j,getpid());
- j= 1;
- sleep(2);
- semUp(semId);
- }
- }
- else
- {
- for(int i=0;i<5;i++)
- {
- semDown(semId);
- printf("\t PID%d(%c) = %d\n",i+1,'A',getpid());
- printf("\t PID%d(%c) = %d\n",i+1,'A'+1,getpid());
- printf("\t PID%d(%c) = %d\n",i+1,'A'+2,getpid());
- sleep(1);
- semUp(semId);
- }
- wait(NULL);
- semRemove(semId);
- }
- }
Add Comment
Please, Sign In to add comment