免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2232 | 回复: 4
打印 上一主题 下一主题

创建deamon的代码 中的一点疑惑 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-27 16:05 |只看该作者 |倒序浏览
在网上找了几个创建deamon时的代码,都有下面一段:


  1. if(pid=fork())
  2. exit(0);//是父进程,结束父进程
  3. else if(pid< 0)
  4. exit(1);//fork失败,退出
复制代码



我不理解的是:当fork创建失败,即pid是负值的时候,在第一个if里面就直接exit(0)了,根本不会用到else if(pid<0).
                          创建成功时,正值或者0的时候,明显也不会用到else if。


那么这个else if放在这是什么意思?
补充:这个代码是要创建一个子进程,子进程创建成功后,杀掉父进程的

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
2 [报告]
发表于 2008-08-27 16:14 |只看该作者

回复 #1 bluecase 的帖子

这种写法有问题,网上的东西不可全信,自己分析原理得出答案才是真道理。

论坛徽章:
0
3 [报告]
发表于 2008-08-27 16:43 |只看该作者

回复 #2 dreamice 的帖子

恩,第一次看到的时候觉得是有问题,后来看到别人都是这么写,自己又是新手,所以迷糊了。谢谢了

论坛徽章:
0
4 [报告]
发表于 2008-08-30 07:45 |只看该作者

  1. if ((pid = fork() < 0){
  2.      perror("error when forking");
  3.      exit (1);
  4. }else if (pid != 0){  /* parent */
  5.      exit (0);
  6. }       
复制代码


APUE和用TCP/IP进行网际互联第三卷 Linux/POSIX套接字版中都有关于守护进程的详细介绍。

[ 本帖最后由 xunen 于 2008-8-31 08:10 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2008-08-30 15:50 |只看该作者

回复 #4 xunen 的帖子

好像刚下了APUE的电子版,我去看看
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP