Advertisement
Guest User

Untitled

a guest
Oct 20th, 2014
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.11 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <sys/types.h>
  3.  
  4. void Cwiczenie0(){
  5.     int pid=fork();
  6.     switch (pid){
  7.  
  8.         case 1:
  9.             // Komunikat o błędzie
  10.             printf("Zonk\n");
  11.             break;
  12.  
  13.         case 0:
  14.             // Tu instrukcje procesu potomnego
  15.             printf("ID procesu potomnego= %d\n", getpid());
  16.             printf("ID procesu macierzystego z potomnego= %d\n", getppid());
  17.             break;
  18.    
  19.         default:
  20.             // Tu instrukcje procesu macierzystego
  21.             printf("ID procesu macierzystego= %d\n", getpid());
  22.         }
  23.         // Instrukcje umieszczone w tym miejscu wykonają się przez obydwa procesy
  24. }
  25.  
  26.  
  27. void Cwiczenie1(){
  28.     int pid=fork();
  29.     int i,x,y;
  30.     //x=6,y=2; //Podpunkt A
  31.     x=2,y=3; //Podpunkt B
  32.    
  33.     switch (pid){
  34.  
  35.         case 1:
  36.             printf("Zonk\n");
  37.             break;
  38.  
  39.         case 0:
  40.             printf("Potomek zaczyna, mój ID= %d, ID rodzica= %d\n", getpid(),getppid());
  41.             for(i=0; i<=10; i++){
  42.                 printf("Potomek, mój ID= %d, ID rodzica= %d\n", getpid(),getppid());
  43.                 sleep(y);
  44.             }
  45.             printf("Potomek kończy, mój ID= %d\n", getpid());
  46.             break;
  47.    
  48.         default:
  49.             printf("Ojciec, zaczynam, mój ID= %d\n", getpid());
  50.             for(i=0; i<=10; i++){
  51.                 printf("Ojciec, mój ID= %d\n", getpid());
  52.                 sleep(x);
  53.             }
  54.             wait(); //Czekanie rodzica na zakonczenie potomka
  55.             printf("Ojciec kończy, mój ID= %d\n", getpid());
  56.             break;
  57.         }
  58. }
  59.  
  60.  
  61. void Cwiczenie2(){
  62.     int pid=fork();
  63.     int i,x,y;
  64.     //x=6,y=2; //Podpunkt A
  65.     x=2,y=6; //Podpunkt B
  66.    
  67.     switch (pid){
  68.  
  69.         case 1:
  70.             printf("Zonk\n");
  71.             break;
  72.  
  73.         case 0:
  74.             printf("Potomek zaczyna, mój ID= %d, ID rodzica= %d\n", getpid(),getppid());
  75.             for(i=0; i<=10; i++){
  76.                 printf("Potomek, mój ID= %d, ID rodzica= %d\n", getpid(),getppid());
  77.                 sleep(y);
  78.             }
  79.             printf("Potomek kończy, mój ID= %d\n", getpid());
  80.             break;
  81.    
  82.         default:
  83.             printf("Ojciec, zaczynam, mój ID= %d\n", getpid());
  84.             for(i=0; i<=10; i++){
  85.                 printf("Ojciec, mój ID= %d\n", getpid());
  86.                 sleep(x);
  87.             }
  88.             wait(); //Czekanie rodzica na zakonczenie potomka
  89.             printf("Ojciec kończy, mój ID= %d\n", getpid());
  90.             break;
  91.         }
  92. }
  93.  
  94.  
  95.  
  96.  
  97. int main(){
  98.     //Cwiczenie0();
  99.     Cwiczenie1();
  100.     //Cwiczenie2();
  101.     //Cwiczenie3();
  102.  
  103.     return 0;
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement