关于进程问题的一些思考
来源:互联网 发布:java压缩包文件名乱码 编辑:程序博客网 时间:2024/06/06 17:23
进程fork()函数可能返回三个值:
0: 该进程为子进程(因为它没有子进程,故为0)
进程标识: 该进程为父进程
负数: 创建进程失败
在做上机作业的时候,没有思考到位,导致出现了逻辑错误:
最终输出两组sub_1 一组sub_2 一组parent
期望输出为两组sub_2 一组sub_1 一组parent
后来经过实验,打印出pid1和pid2的值,发现了如下特点:
pid2是在第一个fork后定义的,所以在此产生的进程与父进程共享一个pid1的值。
图中pid为4160的进程虽然没有参与第一次进程的创建,但它从父进程中得到了这一值。
正确的逻辑:
int pid1=fork(); int pid2=fork(); int i=0; while(i++<1) { if(pid2==0){ printf("this is from sub_2!pid=%d pid1=%d pid2=0\n",getpid(),pid1); }else if(pid1==0){ printf("this is from sub_1!pid=%d pid1=0 pid2=%d\n",getpid(),pid2); }else{ printf("this is from parent!pid=%d\n pid1=%d pid2=%d\n",getpid(),pid1,pid2);} }
以最后创建的进程为先决条件判断。
结果
阅读全文
0 0
- 关于进程问题的一些思考
- 关于多线程/多进程的一些思考
- 关于生产者-消费者问题的一些思考
- 关于软件盗版问题的一些思考
- 关于后台问题的一些思考
- 关于精灵进程的一些思考和代码片段
- 关于指令、数据、程序和进程的一些思考
- 关于ArcSOC.exe进程的一些问题
- 关于进程的一些小问题
- 一些思考的问题
- 关于进程调度的思考
- 关于c++中一些指针问题的思考
- 项目q总结:关于Linux性能问题的一些思考
- 关于二分查找及其上下界问题的一些思考
- 关于博客更新的一些问题与思考
- 关于 sizeof() 的一些思考
- 关于sizeof()的一些思考
- 关于useBean的一些思考
- mysql数据库数据导入导出(windows环境)
- jquery_ajax
- build.sh脚本
- TOP100summit:【分享实录-QQ空间】10亿级直播背后的技术优化
- Java数据结构与算法解析(五)——二叉查找树
- 关于进程问题的一些思考
- cenos 7 tomcat启动巨慢的解决
- Java并发编程:volatile关键字解析
- RxJava2.0笔记记录(一)
- 【廖雪峰Python习题集】字符串和编码
- Thread的中断机制(interrupt)
- 爬虫豆瓣完整版
- c++对文件进行操作之创建特定的文件结构
- 《Spark快速大数据分析》笔记 第三章RDD编程