[Chapter 3 Process]Practice 3.12 Including the initial parent process, how many processes are created by the program shown in Figure 3.32?
2013-11-29 20:02
796 查看
3.12 Including the initial parent process, how many processes are created by the program shown in Figure 3.32?
答案: 共16个进程。
解析:
根据之前所学到的关于fork的知识去画进程图, 要注意的一点就是, fork的子进程的程序计数器里的指令和父进程的相同, 所以每次fork之后, 子进程里i的值都会继续增加。例如, 第一个进程, i=0时, fork的子进程的i会继续++, 从1开始。 下面是此题的进程图。
jk
红色的数字是进程的PID, PID是我当时写的一个程序得到的, 代码如下:
答案: 共16个进程。
解析:
根据之前所学到的关于fork的知识去画进程图, 要注意的一点就是, fork的子进程的程序计数器里的指令和父进程的相同, 所以每次fork之后, 子进程里i的值都会继续增加。例如, 第一个进程, i=0时, fork的子进程的i会继续++, 从1开始。 下面是此题的进程图。
jk
红色的数字是进程的PID, PID是我当时写的一个程序得到的, 代码如下:
#include<stdio.h> #include<unistd.h> #include<sys/types.h> int main() { char p = 'c'; int i; FILE *fp; pid_t pid; printf("%d\n", getpid()); fp = fopen("data.txt", "a+"); for(i = 0; i < 4; i++){ if(fork() > 0){ printf("%c %d\n", p = 'p', i); } else printf("%c %d\n", p, i); wait(NULL); } fprintf(fp, "%d %d\n", getppid(), getpid()); fclose(fp); return 0; }
相关文章推荐
- 层次遍历二叉树
- ie6遮罩层兼容 100%高度的实现
- HDU 4055 Number String dp
- 36.C++模板
- 最小生成树
- 配置Rip的认证
- jquery常见插件用法表
- 他让我如此的轻松
- (转)Oracle Data Guard学习
- 谷歌Chrome浏览器小于12px字号显示的BUG
- tomcat部署web应用的三种方式
- 二进制的高精度计算
- hdu 4539(状态压缩dp)
- StarWind iSCSI Target5.4图文教程
- Cocoa Foundation框架中的一些常用类
- 取消Windows Server 2008管理员密码&设置自动登录
- 剑指Offer - 九度1506 - 求1+2+3+...+n
- 输出方式 &> 1> 2> 2>&1
- 软件工程(四)面向对象技术
- 调度子系统1_调度子系统初始化