创建deamon的代码 中的一点疑惑

发布于 2022-09-21 01:19:25 字数 583 浏览 9 评论 0

在网上找了几个创建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放在这是什么意思?
补充:这个代码是要创建一个子进程,子进程创建成功后,杀掉父进程的

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

小红帽 2022-09-28 01:19:25

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

一个人的旅程 2022-09-28 01:19:25

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

携君以终年 2022-09-28 01:19:25
  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 编辑 ]

带刺的爱情 2022-09-28 01:19:25

好像刚下了APUE的电子版,我去看看

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文