부모 주소 공간이 "ls"명령으로 바뀌는 forkl 및 execlp 프로그램을 시도했습니다. 내가 프로그램을 아이Fork and Execlp
printf("\nStill I am the child\n");
의 마지막 줄을 실행하면
#include<stdio.h>
main()
{
int pid,j=10,fd;
pid=fork();
if(pid==0)
{
printf("\nI am the child\n");
execlp("/bin/ls","ls",NULL);
printf("\nStill I am the child\n");
}
else if (pid > 0)
{
printf("\n I am the parent\n");
wait();
}
}
는 인쇄되지 않습니다. 왜?
몇 가지 좋은 점이 있지만 새로운 프로세스에서는 pid가 확실히 다릅니다. 또한 exec는 프로세스가 성공할 경우에만 대체하고, 그렇지 않으면 exec 호출을 계속 수행합니다. – techdude