【发布时间】:2010-11-14 18:01:03
【问题描述】:
我正在编写自己的 shell,但没有 fork 给我的 child_pid = 0... 有什么问题?
while(true)
{
read_command(command);
if ((child_pid = fork()) == -1)
{
fprintf(stderr, "can't fork\n");
exit(1);
}
else if (child_pid == 0) //child
{
status=execl("./myShell" command);
}
else
{
wait(status); //parent
}
}
【问题讨论】:
-
我不明白你的问题
-
他的意思是:你怎么知道
child_pid永远不会是0?你试过打印吗? -
如果不做任何事情,为什么会得到
execl的返回值? -
假设
status被声明为int,wait(status)也应该是wait(&status)。
标签: c++ unix system-calls