#include <sys/types.h>
#include <stdio.h>
#include <unistd.h>
int main(){
pid_t pid;
pid = fork();
if(pid<0){
fprintf(stderr, "fork failed");
return 1; }
else if(pid == 0){
execlp("bin/ls", "ls", NULL);}
else{
wait(NULL);
printf("child complete\n");
}
return 0;
}
据我理解,这里创建了一个子进程,由于fork返回的pid为“0”,它进入包含execlp语句的块并执行它,然后父进程等待子进程退出,然后输出“child complete”。如果我理解有误,请纠正我。但我不明白execlp()在这里是如何工作的。能否有人解释一下?
ls
所做的),但实际上只发布了child complete
。 - Nitin Aggarwalexeclp("/bin/ls", "ls", NULL);}
。 - deimus