fork() || fork()和fork() && fork()笔试题
来源:互联网 发布:淘宝美工课件 编辑:程序博客网 时间:2024/05/21 15:07
程序一:
#include "stdio.h"#include "sys/types.h"#include "unistd.h"int main(){ fork() || fork(); printf("+"); return 0;}
结果输出3个"+",共创建3个进程。
fork()给子进程返回一个零值,而给父进程返回一个非零值;
在main这个主进程中,首先执行 fork() || fork(), 左边的fork()返回一个非零值,根据||的短路原则,前面的表达式为真时,后面的表达式不执行,故包含main的这个主进程创建了一个子进程,
由于子进程会复制父进程,而且子进程会根据其返回值继续执行,就是说,在子进程中, fork() ||fork()这条语句左边表达式的返回值是0, 所以||右边的表达式要执行,这时在子进程中又创建了一个进程,
即main进程->子进程->子进程,一共创建了3个进程。
程序二:
程序三:程序二:
#include "stdio.h"#include "sys/types.h"#include "unistd.h"int main(){ fork() && fork(); printf("+"); return 0;}结果输出3个"+",共创建3个进程。
#include "stdio.h"#include "sys/types.h"#include "unistd.h"int main(){ fork() || fork() || fork(); printf("+"); return 0;}结果输出4个"+",共创建4个进程。
程序四:
#include "stdio.h"#include "sys/types.h"#include "unistd.h"int main(){ fork() && fork() && fork(); printf("+"); return 0;}结果输出4个"+",共创建4个进程。
程序五:
#include "stdio.h"#include "sys/types.h"#include "unistd.h"int main(){ fork() || fork() || fork() || fork(); printf("+"); return 0;}结果输出5个"+",共创建5个进程。
程序六:
#include "stdio.h"#include "sys/types.h"#include "unistd.h"int main(){ fork() && fork() && fork() && fork(); printf("+"); return 0;}结果输出5个"+",共创建5个进程。
0 0
- fork() || fork()和fork() && fork()笔试题
- fork() || fork()和fork() && fork()笔试题
- fork() || fork()和fork() && fork()笔试题
- fork
- FORK()
- fork
- fork
- fork()
- fork
- fork
- fork
- fork
- fork()
- fork
- fork
- fork
- fork
- fork
- FiddlerCoreAPI 使用简介
- leetcode 88 ——Merge Sorted Array
- 151025总结
- PowerDesigner教程及下载
- 用西部数码网站管理助手配置codeigniter框架环境
- fork() || fork()和fork() && fork()笔试题
- 公钥和私钥
- 拓扑排序
- Android入门:SDK介绍与安装选择
- 零基础ios开发(三 打僵尸)
- mysql 性能优化方案
- 嵌入式Linux根文件系统构建
- 关于makefile的=: =? =+区别
- 数据库范式