fork函数使用随笔(转)
来源:互联网 发布:嵌入式软件招聘 编辑:程序博客网 时间:2024/04/28 19:18
最近在使用fork函数时,遇到了一些问题,最后通过实验,终于明白了fork的用法,现在分享一下我的
一些体会。
那么,首先看一段代码(fork.c):
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int main ()
{
pid_t pid;
int count = 0;
pid = fork ();
if (pid != 0) {
printf ("我是孩儿他爹/n/n");
count += 1;
}
else {
printf ("我是我爹的儿子/n/n");
count += 1;
}
printf("统计结果是:%d/n", count);
return 0;
}
编译-- gcc fork.c -o fork
运行,结果如下:
我是我爹的儿子
统计结果是:1
我是孩儿他爹
统计结果是:1
从中我们可以看出,在执行了fork函数后,子进程首先执行,然后是父进程,同时通过计数器可以看出,
两个进程不共享内存区域(不共享count这个变量),形成了两个相对独立的进程。
那么,再来看下一个问题,代码如下:
- #include <stdio.h>
- #include <stdlib.h>
- #include <sys/types.h>
- #include <unistd.h>
- int main ()
- {
- int i;
- for (i = 0; i < 1; i++) {
- fork ();
- printf ("+ ");
- }
- return 0;
- }
这是一个for循环,很简单,每次打印一个“+”号,首先,赋值1给i,运行,结果为:
+ +
赋值2给i,运行,结果为:
+ + + + + +
...
通过统计,可以得出结论:
“+”号的总数为 = 2 * (0 + 1 + 2 ...)
可见,一次循环,产生两个进程,第二次是加倍,第三次再加倍...
可见fork能为我们源源不断的增加"人口“,再配合着exec家族,就能让linux的进程人丁兴旺了,当然,产生
新进程的方法还有system,但出于安全的考虑,fork和exec要好一些。
- fork函数使用随笔(转)
- fork函数使用随笔
- 函数fork使用
- fork函数的使用
- fork函数的使用
- fork函数的使用详解
- fork()函数的基本使用
- free()函数使用随笔
- fork与fork函数
- (转)fork()函数详解
- fork函数浅析(转)
- [转]fork()函数的理解
- 创建进程fork()函数使用
- fork,exec族函数的使用
- fork函数的介绍和使用
- linux中关于fork函数的使用
- linux 下的fork()函数使用例子
- Unix Like的fork()函数使用
- RGB到YUV的转换
- py
- xuxie
- 对象
- wz
- fork函数使用随笔(转)
- GSM方式的遥控控制程序设计(通过手机遥控) [推荐项目服务]
- 献给初学.net的朋友们!
- Linux进程通信
- 序章...
- 在Eclipse中开发android的google map应用
- 新建文件夹
- 第一篇:我们学什么?
- 第II章、课程介绍