一张图解决一道笔试题 --- 理解fork函数
2014-03-18 16:19
162 查看
下面的程序一共输出多少个“-”?()
由于printf没有清理缓冲区,所以图中有些地方有相应的+1,+2,就是子进程对父进程拷贝的同时,子进程的输出缓冲区也做了同样拷贝,父进程维持自身不变(注意父子进程角色的变化),从图中很容易得出,本题目在 i < 2 时,输出是8个“-”,题目修改,比如 i < 3,那么输出将会是24个“-”。
如果printf有清理缓冲区,那么相应的输出就没有图中对应的print+了。
#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函数
- 一道微软的Mini-Test笔试题 解决方法。
- 通过一道笔试题理解c#静态构造函数
- #通过一道阿里笔试题加深对JVM的理解
- 一道C语言笔试题——理解结构体的内存对齐和位域问题
- 一道笔试题的理解C++拷贝构造函数
- 通过一道笔试题理解c#静态构造函数
- 使用程序解决一道逻辑推理题
- 理解linux的fork函数
- 一道C++笔试题说一些知识
- 金蝶的一道SQL笔试题,特晕
- 关于一道面试题目的理解
- 一道2014年阿里巴巴校招笔试题
- 一道笔试题——由数组中除了一个数之外的其他数的乘积生成另一个数组
- 无法在同一张表上查询和更新的问题解决方法
- 解决函数中返回局部指针变量的问题,加深理解《堆和栈》问题
- 一道有关数据类型的笔试题
- 一道值类型和引用类型理解的问题
- 一道不怎么容易的算法题解决办法
- 阿里巴巴笔试题:两个人捡到一张10元购物卡,谁出价出的高,则该卡归谁,另一个人获得出价的钱,