29 for(i=0; i<5;i++)
30 {
31 pid = fork();
32
33
34
35 if (pid == -1)
36 {
37 fprintf(stderr, "fork failed");
38 return 1;
39 }
40 else if(pid==0)
41 {
42
43 for(j=0;j<5;j++)
44 {
45 printf("[%dprocess] #%d\n",getpid(),j);
46 }
47 return 0;
48 }
49 else
50 {
51 while(waitpid(-1, &status, WNOHANG) > 0)
52
53 //while(wait(NULL)!=-1 )
54 {
55
56 printf("%d [child] 종료. %d [부모]\n",wait(NULL),getpid());
57 }
58 }
59 }
60 return 0;
61 }
음 왜그런지는 모르겟지만 암튼 일케 고치니
프로세스끼리 충돌해서 순서막섞이는게 보이고
모든 자식프로세스가 출력되는것도 보이는데
왜 while 구문은 작동안하는거임..
솔직히 waitpid 몰라서 wait(NULL)로 조건 걸고하면 또 병신같이 나옴..
while 구문만 좀돠줘...
30 {
31 pid = fork();
32
33
34
35 if (pid == -1)
36 {
37 fprintf(stderr, "fork failed");
38 return 1;
39 }
40 else if(pid==0)
41 {
42
43 for(j=0;j<5;j++)
44 {
45 printf("[%dprocess] #%d\n",getpid(),j);
46 }
47 return 0;
48 }
49 else
50 {
51 while(waitpid(-1, &status, WNOHANG) > 0)
52
53 //while(wait(NULL)!=-1 )
54 {
55
56 printf("%d [child] 종료. %d [부모]\n",wait(NULL),getpid());
57 }
58 }
59 }
60 return 0;
61 }
음 왜그런지는 모르겟지만 암튼 일케 고치니
프로세스끼리 충돌해서 순서막섞이는게 보이고
모든 자식프로세스가 출력되는것도 보이는데
왜 while 구문은 작동안하는거임..
솔직히 waitpid 몰라서 wait(NULL)로 조건 걸고하면 또 병신같이 나옴..
while 구문만 좀돠줘...
29줄까지는 어디로 종범하셨나?
http://ideone.com/M7rpnk
변수선언하는것만 잇으니까.. while 구문 좀 도와줘..제발..ㅠ.ㅜ.자식새끼가 쳐디질때마다 누가 디졌는지 출력하게쫌..
시발 오타 while문안에 deat_child_pid 아니고 dead_child_pid임
ㅇㅇ// while 그렇게 바꿔밧는데도 작동안함..ㅠㅜ
풀소스좀