Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <sys/types.h>
- void Cwiczenie0(){
- int pid=fork();
- switch (pid){
- case 1:
- // Komunikat o błędzie
- printf("Zonk\n");
- break;
- case 0:
- // Tu instrukcje procesu potomnego
- printf("ID procesu potomnego= %d\n", getpid());
- printf("ID procesu macierzystego z potomnego= %d\n", getppid());
- break;
- default:
- // Tu instrukcje procesu macierzystego
- printf("ID procesu macierzystego= %d\n", getpid());
- }
- // Instrukcje umieszczone w tym miejscu wykonają się przez obydwa procesy
- }
- void Cwiczenie1(){
- int pid=fork();
- int i,x,y;
- //x=6,y=2; //Podpunkt A
- x=2,y=3; //Podpunkt B
- switch (pid){
- case 1:
- printf("Zonk\n");
- break;
- case 0:
- printf("Potomek zaczyna, mój ID= %d, ID rodzica= %d\n", getpid(),getppid());
- for(i=0; i<=10; i++){
- printf("Potomek, mój ID= %d, ID rodzica= %d\n", getpid(),getppid());
- sleep(y);
- }
- printf("Potomek kończy, mój ID= %d\n", getpid());
- break;
- default:
- printf("Ojciec, zaczynam, mój ID= %d\n", getpid());
- for(i=0; i<=10; i++){
- printf("Ojciec, mój ID= %d\n", getpid());
- sleep(x);
- }
- wait(); //Czekanie rodzica na zakonczenie potomka
- printf("Ojciec kończy, mój ID= %d\n", getpid());
- break;
- }
- }
- void Cwiczenie2(){
- int pid=fork();
- int i,x,y;
- //x=6,y=2; //Podpunkt A
- x=2,y=6; //Podpunkt B
- switch (pid){
- case 1:
- printf("Zonk\n");
- break;
- case 0:
- printf("Potomek zaczyna, mój ID= %d, ID rodzica= %d\n", getpid(),getppid());
- for(i=0; i<=10; i++){
- printf("Potomek, mój ID= %d, ID rodzica= %d\n", getpid(),getppid());
- sleep(y);
- }
- printf("Potomek kończy, mój ID= %d\n", getpid());
- break;
- default:
- printf("Ojciec, zaczynam, mój ID= %d\n", getpid());
- for(i=0; i<=10; i++){
- printf("Ojciec, mój ID= %d\n", getpid());
- sleep(x);
- }
- wait(); //Czekanie rodzica na zakonczenie potomka
- printf("Ojciec kończy, mój ID= %d\n", getpid());
- break;
- }
- }
- int main(){
- //Cwiczenie0();
- Cwiczenie1();
- //Cwiczenie2();
- //Cwiczenie3();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement