fork(1) download
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<signal.h>
  4. #include<unistd.h>
  5. #include<sys/types.h>
  6.  
  7. void sighup()
  8. {
  9. signal(SIGHUP,sighup);
  10. printf("Received SIGHUP! Happy Now ??\n");
  11. }
  12.  
  13. void sigbus()
  14. {
  15. signal(SIGBUS,sigbus);
  16. printf("received SIGBUS! Get a life dude !\n");
  17. }
  18.  
  19. void sigquit()
  20. {
  21. printf("I am done with you. Bye!!\n");
  22. fflush(stdout);
  23. exit(0);
  24. }
  25.  
  26. int main()
  27. {
  28. int pid = fork();
  29.  
  30. if (pid < 0)
  31. {
  32. perror("fork");
  33. exit(1);
  34. }
  35.  
  36. if (pid == 0)
  37. {
  38. printf("child\n");
  39.  
  40. signal(SIGHUP,sighup);
  41. signal(SIGBUS,sigbus);
  42. signal(SIGQUIT,sigquit);
  43. while(1)
  44. {
  45. ;
  46. }
  47. }
  48. else
  49. {
  50. printf("parent\n");
  51. kill(pid, SIGHUP);
  52. kill(pid, SIGBUS);
  53. kill(pid, SIGQUIT);
  54.  
  55. wait();
  56. }
  57. }
  58.  
Runtime error #stdin #stdout 0s 2292KB
stdin
Standard input is empty
stdout
parent