一张图解决一道笔试题 --- 理解fork函数
2014-09-11 21:36
218 查看
下面的程序一共输出多少个“-”?()
[cpp] view
plaincopy
#include <stdio.h>
#include <unistd.h>
int main(void)
{
inti;
for(i=0; i<2; i++){
fork();
printf("-");
}
return 0;
}
A. 2 B. 4 C. 6 D. 8
由于printf没有清理缓冲区,所以图中有些地方有相应的+1,+2,就是子进程对父进程拷贝的同时,子进程的输出缓冲区也做了同样拷贝,父进程维持自身不变(注意父子进程角色的变化),从图中很容易得出,本题目在 i < 2 时,输出是8个“-”,题目修改,比如 i < 3,那么输出将会是24个“-”。
如果printf有清理缓冲区,那么相应的输出就没有图中对应的print+了。
[cpp] view
plaincopy
#include <stdio.h>
#include <unistd.h>
int main(void)
{
inti;
for(i=0; i<2; i++){
fork();
printf("-");
}
return 0;
}
A. 2 B. 4 C. 6 D. 8
由于printf没有清理缓冲区,所以图中有些地方有相应的+1,+2,就是子进程对父进程拷贝的同时,子进程的输出缓冲区也做了同样拷贝,父进程维持自身不变(注意父子进程角色的变化),从图中很容易得出,本题目在 i < 2 时,输出是8个“-”,题目修改,比如 i < 3,那么输出将会是24个“-”。
如果printf有清理缓冲区,那么相应的输出就没有图中对应的print+了。
相关文章推荐
- 一张图解决一道笔试题 --- 理解fork函数
- 通过一道笔试题理解c#静态构造函数
- 一道微软的Mini-Test笔试题 解决方法。
- 一道笔试题的理解C++拷贝构造函数
- 一道C语言笔试题——理解结构体的内存对齐和位域问题
- 通过一道笔试题理解c#静态构造函数
- #通过一道阿里笔试题加深对JVM的理解
- 炒冷饭 《从一道笔试题谈算法优化》全文【作者: 恋花蝶】
- gameloft一道笔试题
- 理解并解决IE的内存泄漏方式[翻译3]
- 网易一道笔试题!
- 今天看了一遍c,把昨天的一道群硕笔试题做了一下
- 一道挺难的笔试题
- 一道微软亚洲工程院C语言笔试题的解答
- 理解并解决IE的内存泄漏方式
- 一张图更好的帮助你理解盒状模型中的一些概念
- 一道微软MiniTest笔试题
- 一道理解c#中对象(引用类型)相互赋值和方法覆盖(overriding)的题目
- 一道求职笔试题:c#算法题
- 理解并解决IE的内存泄漏方式[翻译]