如何保证输出顺序正确
大家好:现在在用c语言写一个简单的shell, 当输入foreground 和background命令时,如何保证输出正确(像正常shell一样),我想要的输出是:
shell>command1
shell>command2 &
shell>
但我的程序的输出确有问题,当输入“command2 &”时,没有"shell>"输出。
这是我相关的code
pid=fork();
if (pid==0&&bg==0) // foreground
{
exec(command); // 执行命令
exit(1);
}
else if (pid==0&&bg==1) // background
{
setpgid(pid,0);
exec(command); // 执行命令
exit(1);
}
else if (bg!=1)
{
waitpid();
}
请高手指点,谢谢