腾讯面试题--程序一共输出多少个“-”
来源:互联网 发布:老男孩linux视频云盘 编辑:程序博客网 时间:2024/04/29 22:35
题目详情:
请判断下列程序一共输出多少个“-”;
int main(void) { int i; for(i=0; i<2; i++){ fork(); printf("-"); } return 0; }
fork()出的子进程会复制父进程的变量值,缓存信息等,
1、当i=0时,父进程A创建出一个子进程A1,A进程的输出缓冲区会增加一个“-”,A1子进程的输出缓冲区会增加一个“-”;
2、当i=1时,父进程A又会创建另一个子进程A2,同样会复制A的变量值与缓冲区;A1子进程会创建一个自己的子进程A3,同样会复制A1的变量值与缓冲区;
3、因此在A3子进程返回时,A3的输出缓冲区中有两个“-”,会输出2个“-”,A1返回时A1的输出缓冲区中有两个“-”也会输出2个“-”,A2返回时A2的输出缓冲区中有两个“-”,会输,2个“-”;A返回时A的输出缓冲区中有两个“-”,会输,2个“-”;
所以该程序输出为:
8个“-” = A(2个“-”)+A1(2个“-”)+A2(2个“-”)+A3(2个“-”)
同时如果上述代码改变成:
int main(void) { int i; for(i=0; i<2; i++){ fork(); printf("-\n"); } return 0; }
那么在A创建A1时不改变,而当A创建A2与A1创建A3时,A2与A3复制A与A1的输出缓冲区时,缓冲区为空。因为\n有刷新缓冲区的作用。
因此这时候此程序的输出应该为:
6个“-”:A(2个)+A1(2个)+A2(1个)+A3(1个)
阅读全文
2 3
- 腾讯面试题--程序一共输出多少个“-”
- fork()请问下面的程序一共输出多少个“-”?
- 请问下面的程序一共输出多少个“-”?
- 趋势科技2016校招:下面程序一共会在屏幕上输出多少个“-” ?
- 腾讯面试题-0到9999这1万个数中有多少个数字7
- 中国字一共有多少个?
- 一共有多少个三角形
- 面试题:4亿里有多少个1
- 腾讯面试题:50个阶梯,你一次可以上一阶或两阶,走上去,共有多少种走法
- 世界上一共有多少个理发师
- 全世界一共有多少个IP地址?
- 写一个程序,统计出一个文本文件中一共出现了多少个字母‘a’?
- 笔试题&面试题:30个人一共花费50先令,求解男人,女人和小孩的人数分别为多少?
- 经典面试题--程序输出值sizeof
- 程序输出源文件本身(面试题)
- 面试题:以下程序的输出结果是
- 【面试题】1到1000有多少个7?
- 1元钱可以买多少个糖果--面试题
- Nginx访问量统计
- Tomcat启动异常:A child container failed during start 与 ClassNotFoundException: org.slf4j.Loggerl分析与解决方法
- 反向SSH
- Spring思维导图,让Spring不再难懂(ioc篇)
- 容器CNI完全解读(一)
- 腾讯面试题--程序一共输出多少个“-”
- Linux中安装RabbitMQ服务
- Linux下多文件的编译(2)
- ESP8266 AT指令
- Linux目录结构说明
- a++和++a的区别
- PHP多进程实例
- FindObjectsOfType返回场景中所有该类型的组件集合
- eayui-tree的id及text的基本使用,通过id设置某个节点选中