#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的塊並執行它,然後父級等待,直到子進出並然後打印「孩子完成」。如果我錯了,請糾正我。但我不明白execlp()如何在這裏工作。有人可以解釋這個嗎?execlp()系統調用如何工作?
謝謝你一個很好的和有益的答案。 :) – Nikhil 2016-09-23 20:42:37