Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <sys/types.h>
- #include <sys/ipc.h>
- #include <sys/sem.h>
- #include <stdio.h>
- #include <unistd.h>
- #include <errno.h>
- #include <sys/wait.h>
- int semafor;
- static void usun_semafor(void);
- static void utworz_nowy_semafor();
- int main(){
- pid_t id;
- utworz_nowy_semafor();
- id = fork();
- if(id == 0) execl("./plik1", "plik1", NULL);
- id = fork();
- if(id == 0) execl("./plik2", "plik2", NULL);
- id = fork();
- if(id == 0) execl("./plik3", "plik3", NULL);
- for(int i = 0; i < 3; i++) {
- if(wait(NULL) == -1) perror("blad wait");
- }
- usun_semafor();
- system("ipcs -s");
- printf("\nprogram napisal: Krystian Labaj.\n");
- return 0;
- }
- static void utworz_nowy_semafor()
- {
- semafor=semget(31,5,0777|IPC_CREAT);
- if (semafor==-1)
- {
- printf("Nie moglem utworzyc nowego semafora.\n");
- exit(EXIT_FAILURE);
- }
- else
- {
- printf("Semafor zostal utworzony : %d\n",semafor);
- }
- }
- static void usun_semafor(void){
- int sem;
- sem = semctl(semafor,0,IPC_RMID);
- if(sem == -1)
- {
- printf("Nie mozna usunac semafora.\n");
- exit(EXIT_FAILURE);
- }
- else{
- printf("Semafor zostal usuniety: %d\n",sem);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement