#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <time.h>
int main()
{
FILE
*fp
= fopen("test.txt", "wt"); //저장할 파일 생성.
int i;
int j;
int k;
int status;
time_t rawtime; // 시간 출력
struct tm *timeinfo;
int dead_child_pid;
pid_t pid;
pid_t pid_child; // 부모와 자식의 pid확인 및 pid리턴값
pid_t pid_parent;
pid_t a[10];
for(i=0; i<5;i++)
{
pid = fork();
if (pid == -1)
{
return 1;
}
else if(pid==0)
{
for(j=0;j<5;j++)
{
printf("[%dprocess] #%d\n",getpid
(),j
); }
return 0;
}
else
{
/* while((dead_child_pid = waitpid(-1, &status, WNOHANG)) >0)
{
printf("%d [child] 종료. %d [부모]n", dead_child_pid, getpid());
} 1번
*/
/* while(wait(NULL)!=-1 )
{
printf("%d [child] 종료. %d [부모]n",wait(NULL),getpid());
} 2번
*/
while((dead_child_pid = wait(NULL)) != -1) {
printf("%d [child] 종료. %d [부모]\n", dead_child_pid
, getpid
()); }
}
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHVuaXN0ZC5oPgojaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiNpbmNsdWRlIDx0aW1lLmg+CgppbnQgbWFpbigpCnsKICAgIAogICAgRklMRSAqZnAgPSBmb3BlbigidGVzdC50eHQiLCAid3QiKTsgIC8v7KCA7J6l7ZWgIO2MjOydvCDsg53shLEuCiAgICAKICAgIGludCBpOwogICAgaW50IGo7CiAgICBpbnQgazsKICAgIGludCBzdGF0dXM7CiAgICB0aW1lX3QgcmF3dGltZTsgICAgICAgICAgICAgICAgICAgICAvLyDsi5zqsIQg7Lac66ClCiAgICBzdHJ1Y3QgdG0gKnRpbWVpbmZvOwogICAgCiAgICBpbnQgZGVhZF9jaGlsZF9waWQ7CiAgICB0aW1lKCZyYXd0aW1lKTsKICAgIHRpbWVpbmZvID0gbG9jYWx0aW1lKCZyYXd0aW1lKTsKICAgIAogICAgcGlkX3QgcGlkOwogICAgcGlkX3QgcGlkX2NoaWxkOyAgICAgICAgICAgICAgICAgICAgLy8gICDrtoDrqqjsmYAg7J6Q7Iud7J2YIHBpZO2ZleyduCDrsI8gcGlk66as7YS06rCSCiAgICBwaWRfdCBwaWRfcGFyZW50OwogICAgcGlkX3QgYVsxMF07CiAgICAKICAgIAogICAgCiAgICBmb3IoaT0wOyBpPDU7aSsrKQogICAgewogICAgICAgIHBpZCA9IGZvcmsoKTsKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICBpZiAocGlkID09IC0xKQogICAgICAgIHsKICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJmb3JrIGZhaWxlZCIpOwogICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZihwaWQ9PTApCiAgICAgICAgewogICAgICAgICAgICAKICAgICAgICAgICAgZm9yKGo9MDtqPDU7aisrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBwcmludGYoIlslZHByb2Nlc3NdICMlZFxuIixnZXRwaWQoKSxqKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgLyogICAgd2hpbGUoKGRlYWRfY2hpbGRfcGlkID0gd2FpdHBpZCgtMSwgJnN0YXR1cywgV05PSEFORykpID4wKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBwcmludGYoIiVkIFtjaGlsZF0g7KKF66OMLiAlZCBb67aA66qoXW4iLCBkZWFkX2NoaWxkX3BpZCwgZ2V0cGlkKCkpOwogICAgICAgICAgICB9ICAgICAgIDHrsogKICAgICAgICAgICAgKi8KICAgICAgICAgICAgLyogICB3aGlsZSh3YWl0KE5VTEwpIT0tMSApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHByaW50ZigiJWQgW2NoaWxkXSDsooXro4wuICVkIFvrtoDrqqhdbiIsd2FpdChOVUxMKSxnZXRwaWQoKSk7CiAgICAgICAgICAgIH0gMuuyiAogICAgICAgICAgICAqLwogICAgICAgICAgICAKICAgICAgICAgICAgd2hpbGUoKGRlYWRfY2hpbGRfcGlkID0gd2FpdChOVUxMKSkgIT0gLTEpIHsKICAgICAgICAgICAgICAgIHByaW50ZigiJWQgW2NoaWxkXSDsooXro4wuICVkIFvrtoDrqqhdXG4iLCBkZWFkX2NoaWxkX3BpZCwgZ2V0cGlkKCkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgfQogICAgCiAgICByZXR1cm4gMDsKfQ==