我在 Tannenbaum 关于 MINIX 的书中看到了一个精简的 shell 程序。
while(1) {
read_command(command, parameters);
if (fork() != 0)
wait(&status); /* parent code */
}
else {
execve(command, parameters, 0); /* child code */
}
}
当无限循环执行第一次迭代时,fork() 将返回 0 表示它创建了一个子进程,当它执行第二次时,fork() 不会创建一个新的子进程吗?wait(&status) 将如何执行?
我不熟悉操作系统的工作/构建方式。
谢谢!