#include <stdio.h>
#include <unistd.h>
#include <sys/wait.h>
int main() {
int pid = fork();
if (pid == 0) {
printf("자식 프로세스 실행 중 (PID: %d, 부모 PID: %d)\n", getpid
(), getppid
()); printf("exec()를 사용해 'ls -l' 명령 실행\n"); execl("/bin/ls", "ls", "-l", NULL);
return 1;
} else {
printf("자식 프로세스가 생성되었습니다. (자식 PID: %d)\n", pid
); printf("부모 프로세스가 대기하고 있습니다. (부모 PID: %d)\n", getpid
()); printf("부모 프로세스가 자식프로세스가 종료될 때까지 대기함\n"); wait(NULL);
printf("부모프로세스가 자식 프로세스 종료를 확인했기에 부모 프로세스가 종료됨\n"); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDx1bmlzdGQuaD4gICAgICAKI2luY2x1ZGUgPHN5cy93YWl0Lmg+ICAgCgppbnQgbWFpbigpIHsKICAgIAoKICAgIGludCBwaWQgPSBmb3JrKCk7ICAKCiAgICBpZiAocGlkID09IDApIHsKICAgICAgICAKICAgICAgICBwcmludGYoIuyekOyLnSDtlITroZzshLjsiqQg7Iuk7ZaJIOykkSAoUElEOiAlZCwg67aA66qoIFBJRDogJWQpXG4iLCBnZXRwaWQoKSwgZ2V0cHBpZCgpKTsKICAgICAgICBwcmludGYoImV4ZWMoKeulvCDsgqzsmqntlbQgJ2xzIC1sJyDrqoXroLkg7Iuk7ZaJXG4iKTsKICAgICAgICBleGVjbCgiL2Jpbi9scyIsICJscyIsICItbCIsIE5VTEwpOwoKICAgICAgICAKICAgICAgICByZXR1cm4gMTsKICAgIH0gZWxzZSB7CiAgICAgICAgCiAgICAgICAgcHJpbnRmKCLsnpDsi50g7ZSE66Gc7IS47Iqk6rCAIOyDneyEseuQmOyXiOyKteuLiOuLpC4gKOyekOyLnSBQSUQ6ICVkKVxuIiwgcGlkKTsKICAgICAgICBwcmludGYoIuu2gOuqqCDtlITroZzshLjsiqTqsIAg64yA6riw7ZWY6rOgIOyeiOyKteuLiOuLpC4gKOu2gOuqqCBQSUQ6ICVkKVxuIiwgZ2V0cGlkKCkpOwogICAgICAgIHByaW50Zigi67aA66qoIO2UhOuhnOyEuOyKpOqwgCDsnpDsi53tlITroZzshLjsiqTqsIAg7KKF66OM65CgIOuVjOq5jOyngCDrjIDquLDtlahcbiIpOwogICAgICAgIHdhaXQoTlVMTCk7ICAKICAgICAgICBwcmludGYoIuu2gOuqqO2UhOuhnOyEuOyKpOqwgCDsnpDsi50g7ZSE66Gc7IS47IqkIOyiheujjOulvCDtmZXsnbjtlojquLDsl5Ag67aA66qoIO2UhOuhnOyEuOyKpOqwgCDsooXro4zrkKhcbiIpOwogICAgfQoKICAgIHJldHVybiAwOwp9Cg==