linux fork
来源:互联网 发布:淘宝上的玉石是真的吗 编辑:程序博客网 时间:2024/05/06 23:29
貌似是360的笔试题;
#include <stdio.h>
#include <stdlib.h>
int main() {
int i;
for (i = 0; i < 4; i++) {
fork();
printf(" - \n");
}
}
icode0410@ubuntu:~/Documents/code/linux/process$ gcc forks.c && ./a.out
-
-
-
-
-
-
-
-
-
-
-
-
icode0410@ubuntu:~/Documents/code/linux/process$ -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
总个数为:2 + 4 + 8 + 16 = 30;
|
fork
/+1 \+1
fork fork
/+1 \+1 /+1 \+1
fork ….
/+1 \+1
fork
/+1 \+1
如果将printf(" - \n"); 给成printf(" - ");呢?
icode0410@ubuntu:~/Documents/code/linux/process$ gcc forks.c && ./a.out
- - - - icode0410@ubuntu:~/Documents/code/linux/process$ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
总个数为64;
通过上面的图可知,最后实际的进程数为16个;又因为没有\n导致printf的缓冲区在进程结束时在会flush,而此时,每个进程的buf都有4个-,所以会打印64个-。
- 【linux】fork() && fork() || fork()
- linux fork()
- Linux - fork
- linux fork
- linux fork
- Linux fork()
- Linux-fork()
- Linux-fork()
- linux fork()
- 【Linux】fork()
- linux fork()
- linux fork
- linux环境编程之 fork() || fork()
- USE FORK IN LINUX
- linux fork() 函数学习
- linux fork()函数学习
- fork in Linux
- Linux fork 详解--明白
- URAL Goat in the Garden(圆与矩形求交集面积)
- 【Linux】Linux 自动挂载NTFS格式移动硬盘
- 浮点数在计算机中存储方式
- 标有在村厅枯松脱森远股份
- google hosts 2014,持续更新
- linux fork
- BZOJ 1564 NOI2009 二叉查找树 动态规划
- 1002. 写出这个数 (20)(数学啊 ZJU_PAT)
- 我的开源夏令营——让人欢喜让人忧
- 小代码段
- 智商、情商和逆商与程序员职业生涯发展
- 线程安全单例模式之静态内部类
- java汉字转拼音工具类源代码
- Ural 1962 In Chinese Restaurant