问题描述
我正在制作一个简单的shell,我需要能够运行诸如sleep 5 &
之类的命令。 &
告诉它作为后台进程运行,因此当子进程在后台“睡眠”时,我可以输入其他命令,例如cd someDirectory
。
我已经对其进行了设置,以使其能够正确地分叉,但是如何设置它,以使其在给定&
时可以在后台运行子级?
我对WNHONANG
进行了很多研究,并且做了诸如waitpid(pid,&status,WNHONANG)
之类的事情,但这使它一无所有。
这是我的代码:
int executeCommand(char **args){
pid_t pid;
int status;
pid = fork();
//error in fork
if(pid < 0){
printf("Fork Failed\n");
exit(1);
}
//child process
if(pid == 0){
//child executes process
execvp(args[0],args);
//if execution fails
exit(1);
}
//parent process
else{
waitpid(pid,0);
}
//Do I need this?
kill(pid,SIGKILL);
return 1;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)