Terminal C中的execlp()不';执行后不要立即返回
我尝试fork()一个将运行Terminal C中的execlp()不';执行后不要立即返回,terminal,exec,fork,prompt,Terminal,Exec,Fork,Prompt,我尝试fork()一个将运行ls命令的子级 #include <stdio.h> #include <sys/types.h> #include <unistd.h> #include <stdlib.h> int main() { if (fork()==0){ //child execlp("ls", "ls", "-l", (char*)0); exit(1); } fflush(
ls
命令的子级
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
int main() {
if (fork()==0){ //child
execlp("ls", "ls", "-l", (char*)0);
exit(1);
}
fflush(stderr); //doesn't fix my problem
fflush(stdout); //doesn't fix my problem
exit(0);
}
#包括
#包括
#包括
#包括
int main(){
如果(fork()==0){//child
execlp(“ls”、“ls”、“-l”、(char*)0);
出口(1);
}
fflush(stderr);//无法解决我的问题
fflush(stdout);//无法解决我的问题
出口(0);
}
这可以很好地工作,但是在执行子对象之后,光标会被卡住。我必须按回车键才能回到终端。为什么会这样?您的主进程在子进程完成之前退出。使用Wait()或waitpid()等待子进程退出。如果父进程和子进程退出,如何获取子进程的状态?我需要使用waitpid吗?何时何地可以使用它?