我尝试 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(stderr); //doesn't fix my problem
fflush(stdout); //doesn't fix my problem
exit(0);
}
这很好但是在执行子进程后光标卡住了。我必须按回车键才能回到终端。那是为什么?
答案 0 :(得分:2)
您的主进程在子进程完成之前退出。等待子进程使用wait()或waitpid()退出。