社区
C语言
帖子详情
关于fork函数的一个问题
yueye30121
2012-02-20 08:30:55
mian()
{
int i,n;
for(i=0;i<3;i++)
{
n=fork();
if(n>0)
{
}
else
{
}
}
while(1);
}
在linux下运行这个程序总共可以有几个进程产生?
为什么?
...全文
121
18
打赏
收藏
关于fork函数的一个问题
mian() { int i,n; for(i=0;i0) { } else { } } while(1); } 在linux下运行这个程序总共可以有几个进程产生? 为什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yueye30121
2012-02-20
打赏
举报
回复
[Quote=引用 16 楼 tsh185 的回复:]
你 子进程里面是空的啦,他就跑到 for 去了啦
[/Quote]
这句话重点,明白了,谢谢哈
tsh185
2012-02-20
打赏
举报
回复
看看 《深入理解计算机系统》 这本书 对你这个问题有分析
是编程相关的,很经典的
tsh185
2012-02-20
打赏
举报
回复
你 子进程里面是空的啦,他就跑到 for 去了啦
yueye30121
2012-02-20
打赏
举报
回复
[Quote=引用 7 楼 kuzuozhou 的回复:]
哈哈 笑死了 楼主把main()写成“面”了
[/Quote]
笔误,见笑了
yueye30121
2012-02-20
打赏
举报
回复
[Quote=引用 10 楼 tsh185 的回复:]
肯定啦 , fork 有继承的特性啦
[/Quote]
子进程的运行应该从fork()后开始呀!
tsh185
2012-02-20
打赏
举报
回复
是的 是的
yueye30121
2012-02-20
打赏
举报
回复
[Quote=引用 8 楼 tsh185 的回复:]
i= 0 =》 2 个进程
i= 1 =》 4 个进程
i = 2 =》 8 个进程
[/Quote]
也就是说子进程会从for循环那开始了?
tsh185
2012-02-20
打赏
举报
回复
fork 就是两个 在 fork 函数之前代码一样的程序
tsh185
2012-02-20
打赏
举报
回复
肯定啦 , fork 有继承的特性啦
yueye30121
2012-02-20
打赏
举报
回复
子进程还会执行for循环吗?
tsh185
2012-02-20
打赏
举报
回复
i= 0 =》 2 个进程
i= 1 =》 4 个进程
i = 2 =》 8 个进程
pengfoo
2012-02-20
打赏
举报
回复
哈哈 笑死了 楼主把main()写成“面”了
jialejiahi
2012-02-20
打赏
举报
回复
[Quote=引用 4 楼 yueye30121 的回复:]
既然子进程在for循环里面,而for循环的代码是父进程的,也就是父进程只是产生子进程而已,子进程什么都不会做,到了while(1)的时候循环而已,为什么子进程还能产生子进程呢?
我的问题重点是不知道为什么父进程产生了子进程,为什么子进程还能产生进程呢?
[/Quote]
因为子进程copy了父进程的一切,数据段,代码段,堆栈...
这个循环的过程和循环变量也是被拷贝了的。
yueye30121
2012-02-20
打赏
举报
回复
8个我也知道,但是为什么是8个
yueye30121
2012-02-20
打赏
举报
回复
既然子进程在for循环里面,而for循环的代码是父进程的,也就是父进程只是产生子进程而已,子进程什么都不会做,到了while(1)的时候循环而已,为什么子进程还能产生子进程呢?
我的问题重点是不知道为什么父进程产生了子进程,为什么子进程还能产生进程呢?
yueye30121
2012-02-20
打赏
举报
回复
[Quote=引用 1 楼 jialejiahi 的回复:]
8个,老问题了,翻翻以前的帖子吧。
[/Quote]
子进程从哪开始运行?是fork()函数之后还是调用fork()函数?
tsh185
2012-02-20
打赏
举报
回复
8 个
jialejiahi
2012-02-20
打赏
举报
回复
8个,老问题了,翻翻以前的帖子吧。
Linux0.11内核main
函数
那些事
本课程介绍Linux0.11版本内核如何人工设置第
一个
任务(task 0)以及任务0从内核态切换到用户态的详细过程。包括全局描述符表中的TSS0描述符和LDT0描述符的创建过程。与引导过程中全局描述符表及局部描述符表的创建过程...
关于
fork
函数
的使用
fork
函数
用于创建
一个
新的进程,下面引用一段话介绍一下:
一个
进程,包括代码、数据和分配给进程的资源。
fork
()
函数
通过系统调用创建
一个
与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但...
fork
()
函数
详解
2.
fork
函数
的了解: 3.僵死进程: 1.基本了解:
一个
进程,包括代码、数据和分配给进程的资源。
fork
函数
会新生成
一个
进程,调用
fork
函数
的进程为父进程,新生成的进程为子进程。在父进程中返回子进程的 pid...
fork
函数
详解
fork
()
函数
通过系统调用创建
一个
与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。
一个
进程调用
fork
()
函数
后,系统先给新的进程...
c++中的
fork
函数
_
fork
函数
的作用_
fork
函数
创建进程
fork
函数
的作用在Linux中
fork
函数
是非常重要的
函数
,它的作用是从已经存在的进程中创建
一个
子进程,而原进程称为父进程。调用
fork
(),当控制转移到内核中的
fork
代码后,内核开始做:1.分配新的内存块和内核数据结构...
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章