首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MINIX剥离shell示例

MINIX剥离shell示例
EN

Stack Overflow用户
提问于 2014-03-26 11:54:34
回答 1查看 490关注 0票数 0

我在Tannenbaum关于MINIX的书中偶然发现了一个精简的shell程序。

代码语言:javascript
复制
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)将如何执行?

我刚开始了解操作系统是如何工作/构建的。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2014-03-26 20:09:31

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22651174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档