Shell MINIX精简外壳示例

Shell MINIX精简外壳示例,shell,operating-system,minix,Shell,Operating System,Minix,我在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,表示

我在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()是否会创建一个新的子进程?等待(&status)将如何执行

我对操作系统的工作原理/构建方式还不太了解


谢谢

fork
立即创建一个新进程,因此两个进程都可以看到
fork
返回,但返回值不同。在父进程中,返回值是子进程的非零进程ID,因此父进程执行
wait
。在子级中,
fork
返回0,因此子级执行
execve