pborawski

Procesy potomne i PID

Oct 1st, 2012
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.61 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <sys/types.h>
  5. #include <sys/wait.h>
  6. #include <errno.h>
  7. #include <unistd.h>
  8.  
  9.  
  10. int main()
  11. {
  12.         pid_t pid;
  13.         // Proces Macierzysty
  14.         printf( "Moj pid to: %d\n\n", getpid() );
  15.         // fork() tworzy proces potomny. Zwaca pid nowego procesu.
  16.         switch( pid = fork() )
  17.                 {
  18.                 // W przypadku bledu
  19.                 case -1:
  20.                         printf( "Error in fork = %d %s\n", errno, strerror( errno ) );
  21.                         //return 0;
  22.                 // w przypadku poprawnego wykonania tworzy sie proces potomny
  23.                 case 0:
  24.                         printf( "Jestem procesem potomnym. Moj PID = %d\n", getpid() );
  25.                         printf( "Jestem procesem potomnym. Wartosc przekazana przez fork = %d\n", pid);
  26.                         return 0;
  27.                 //proces macierzysty
  28.                 default:
  29.                         printf( "Jestem procesem macierzystym. Moj PID = %d\n", getpid() );
  30.                         printf( "Jestem procesem macierzystym. Wartosc przekazana przez fork = %d\n", pid);
  31.                         //return 0;
  32.                 // W celu zakonczenia procesu potomnego        
  33.                 //sleep( 10 );
  34.                 // wait( liczba ) czeka na dana liczbe zwracana przez proces potomny. W tym przypadku czeka na 0 czyli zakonczenie.
  35.                 if( wait( 0 ) == -1 )
  36.                         printf( "Error in wait = %d %s\n", errno, strerror( errno ) );
  37.                         return 0;
  38.                 }
  39.         return 0;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment