fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <unistd.h>
  4. #include <sys/types.h>
  5. #include <time.h>
  6.  
  7. int main()
  8. {
  9.  
  10. FILE *fp = fopen("test.txt", "wt"); //저장할 파일 생성.
  11.  
  12. int i;
  13. int j;
  14. int k;
  15. int status;
  16. time_t rawtime; // 시간 출력
  17. struct tm *timeinfo;
  18.  
  19. int dead_child_pid;
  20. time(&rawtime);
  21. timeinfo = localtime(&rawtime);
  22.  
  23. pid_t pid;
  24. pid_t pid_child; // 부모와 자식의 pid확인 및 pid리턴값
  25. pid_t pid_parent;
  26. pid_t a[10];
  27.  
  28.  
  29.  
  30. for(i=0; i<5;i++)
  31. {
  32. pid = fork();
  33.  
  34.  
  35.  
  36. if (pid == -1)
  37. {
  38. fprintf(stderr, "fork failed");
  39. return 1;
  40. }
  41. else if(pid==0)
  42. {
  43.  
  44. for(j=0;j<5;j++)
  45. {
  46. printf("[%dprocess] #%d\n",getpid(),j);
  47. }
  48. return 0;
  49. }
  50. else
  51. {
  52. /* while((dead_child_pid = waitpid(-1, &status, WNOHANG)) >0)
  53.   {
  54.   printf("%d [child] 종료. %d [부모]n", dead_child_pid, getpid());
  55.   } 1번
  56.   */
  57. /* while(wait(NULL)!=-1 )
  58.   {
  59.   printf("%d [child] 종료. %d [부모]n",wait(NULL),getpid());
  60.   } 2번
  61.   */
  62.  
  63. while((dead_child_pid = wait(NULL)) != -1) {
  64. printf("%d [child] 종료. %d [부모]\n", dead_child_pid, getpid());
  65. }
  66. }
  67.  
  68. }
  69.  
  70. return 0;
  71. }
Success #stdin #stdout 0s 1964KB
stdin
Standard input is empty
stdout
[14007process] #0
[14007process] #1
[14007process] #2
[14007process] #3
[14007process] #4
14007 [child] 종료. 14004 [부모]
[14008process] #0
[14008process] #1
[14008process] #2
[14008process] #3
[14008process] #4
14007 [child] 종료. 14004 [부모]
14008 [child] 종료. 14004 [부모]
[14009process] #0
[14009process] #1
[14009process] #2
[14009process] #3
[14009process] #4
14007 [child] 종료. 14004 [부모]
14008 [child] 종료. 14004 [부모]
14009 [child] 종료. 14004 [부모]
[14010process] #0
[14010process] #1
[14010process] #2
[14010process] #3
[14010process] #4
14007 [child] 종료. 14004 [부모]
14008 [child] 종료. 14004 [부모]
14009 [child] 종료. 14004 [부모]
14010 [child] 종료. 14004 [부모]
[14011process] #0
[14011process] #1
[14011process] #2
[14011process] #3
[14011process] #4
14007 [child] 종료. 14004 [부모]
14008 [child] 종료. 14004 [부모]
14009 [child] 종료. 14004 [부모]
14010 [child] 종료. 14004 [부모]
14011 [child] 종료. 14004 [부모]