免费注册 查看新帖 |

Chinaunix

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

请教关于关于后台进程的创建问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-27 09:02 |只看该作者 |倒序浏览
在创建deamon时,有如下代码


if(pid=fork())
exit(0);//是父进程,结束父进程
else if(pid< 0)
exit(1);//fork失败,退出



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


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

[ 本帖最后由 bluecase 于 2008-8-27 09:56 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-08-27 09:27 |只看该作者
恕我浅陋,写这么个代码到底有什么是在意义呢, 干脆程序就一个exit(0)不好吗

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

回复 #1 bluecase 的帖子

fork会返回两次。

论坛徽章:
0
4 [报告]
发表于 2008-08-27 09:45 |只看该作者
回复2楼:我的意思和你一样,就是好像只要一个exit(0)就可以了。但是网上搜到的关于后台进程的代码都是这么写,我怕我自己没有看懂,所以在这里问一问。

论坛徽章:
0
5 [报告]
发表于 2008-08-27 09:52 |只看该作者

回复 #3 web_surf 的帖子

先谢了,3楼,但是你讲清楚些,我没看懂。
我的理解是:
如果fork成功,函数在fork处分成父和子两个进程,父进程exit(0),子进程继续。
如果fork失败,它应该就只返回一个负值吧?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP