fork2.c 641 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /* $Id$ */
  2. /*
  3. Test forking
  4. */
  5. #include <signal.h>
  6. main()
  7. {
  8. int i, b;
  9. long a;
  10. i = fork();
  11. if( i == 0 ) {
  12. printf( "kind 1\n" );
  13. i = fork();
  14. if( i == 0 ) {
  15. printf( "kind 1.1\n" );
  16. exit( 111 );
  17. } else {
  18. wait( &b );
  19. printf( "h:%d, l:%d\n", (b&0xFF00)>>8, b&0xFF);
  20. exit( 11 );
  21. }
  22. } else {
  23. printf( "parent\n" );
  24. i = fork();
  25. if( i == 0 ) {
  26. printf( "kind 2\n" );
  27. exit( 22 );
  28. } else {
  29. a = wait( &b );
  30. printf( "pid:%d, h:%d, l:%d\n", a, (b&0xFF00)>>8, b&0xFF);
  31. a = wait( &b );
  32. printf( "pid:%d, h:%d, l:%d\n", a, (b&0xFF00)>>8, b&0xFF);
  33. exit( 99 );
  34. }
  35. }
  36. }