apue p194页 一个有意思 的demo
来源:互联网 发布:淘宝网鞋子女鞋春季 编辑:程序博客网 时间:2024/06/05 18:04
习惯直接上代码 ,实现功能是fork一个子进程,不想它等待子进程直接退出,也就是fork2次,之前看见一个哥们说为什么父进程退出,子进程和孙子进程为何getppid都是1,其实是错误的自己没有认真研究代码,其实父进程和子进程都退出了,就留下了孙子进程执行;
#include<stdio.h> 2 #include<unistd.h> 3 #include<string.h> 4 #include<sys/wait.h> 5 #include<errno.h> 6 int main(void) 7 { 8 pid_t pid; 9 if((pid=fork()) < 0){ //创建进程 10 fprintf(stderr , "fork error : %s \n" , strerror(errno)); 11 exit(1); 12 }else if(pid == 0){ 13 printf("this's process id: %d\n" , getpid()); 14 sleep(2); 15 if((pid = fork()) < 0){ //再次创建进程 16 fprintf(stderr , "fork error :%s\n", strerror(errno)); 17 exit(2); 18 } 19 else if(pid > 0) 20 exit(0); //第1个子线程在这里退出的 21 sleep(2); 22 printf("second child , parent pid = %ld\n" , (long)getppid()); 23 exit(0); 24 } 25 26 if(waitpid(pid , NULL ,0) != pid){ 27 fprintf(stderr , " waipid error:%s\n" , strerror(errno)); 28 exit(3); 29 } 30 printf("this's process id: %d\n" , getpid()); 31 exit(0); 32 33 }输出: this's process id: 3649[root@xc p193]# second child , parent pid = 1其实之前也没太搞明白,所以就加了两个print。孙子进程获取父进程id为一的原因在于被init进程继承过去了
0 0
- apue p194页 一个有意思 的demo
- Head first java中p194页的一个关于java源文件有多个public 的错误
- 有意思的一个算法。
- 一个有意思的思考题
- ------一个有意思的题目-----------
- 一个有意思的问题
- 一个有意思的问题
- 一个有意思的题目
- 一个有意思的梦
- 一个有意思的例子
- 一个有意思的bug
- 一个有意思的符号
- 一个有意思的博弈
- 一个有意思的问题
- 一个有意思的算法
- 一个有意思的sql
- 深度学习一些有意思的demo
- 一个很有意思的网站
- 100天土鸡饲养计划(68)
- session创建
- SPA (单页应用程序)
- 【LeetCode-Python】412. Fizz Buzz
- 14、模板方法模式(Template Method)
- apue p194页 一个有意思 的demo
- Neither the JAVA_HOME nor the JRE_HOME environment variable is defined解决
- Android 轻松实现后台搭建+APP版本更新
- Java内存空间划分初识(适合初学者)
- Ubuntu 14.04 LTS 下升级 gcc 到 gcc-4.9、gcc-5 版本
- tcp转发器使用说明
- 在Android 5.0 SEAndroid下通过JNI访问一个内核节点
- js中的事件委托
- hdu1257(贪心)