当前位置:  技术问答>linux和unix

fork+setsid程序的行为和我预期的不一样,为什么?

    来源: 互联网  发布时间:2016-10-19

    本文导语:  我写了这么一个小程序,发现了两个问题。 1. fork之后的子进程setsid,再printf这个session_id仍然有输出。不是说setsid的程序就没有了控制终端么? 2. 由于父进程没有wait,而子进程先退出。父进程退出以后,并没有发现...

我写了这么一个小程序,发现了两个问题。

1. fork之后的子进程setsid,再printf这个session_id仍然有输出。不是说setsid的程序就没有了控制终端么?
2. 由于父进程没有wait,而子进程先退出。父进程退出以后,并没有发现系统里面有僵尸进程a.out的影子(子进程没有被收尸)。这是为什么?  


#include
#include
#include
#include
int main(void){
  printf("firstn");
  pid_t p=fork();
  if(p==0){//child
    pid_t s=setsid();
    printf("session id=%dn",s);
  }else if(p>0){
    sleep(7);
  }else{}//error
  return 0;
}

|
不是说setsid的程序就没有了控制终端么
====
没有人说过这个话吧。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 奇怪:程序一fork子进程时就停住了,似乎根本不能fork子进程啊?
  • 先 fork 子进程然后 execl 另一个可执行程序, 如何得到这个可执行程序结束的返回值?
  • 程序在fork前申请了内存若干,在fork后子进程是否需要释放父进程之前申请的内存
  • 执行一个main函数程序时,unix操作系统调用什么创建进程?fork?newproc?
  • 请教进程fork()相关的,执行效率的问题,看我这段程序.
  • linux中的fork程序问题
  • linux 中用fork创建子进程后,用exec执行自己的程序的问题
  • fork~exec不会使用,请问怎么使用,我只是想简单的用进程调用一个程序。
  • 有一个关于fork()和程序设计的问题请高手指点
  • 我编的一个关于使用fork()的c程序,图方便想在turbo C里面运行,可是总说找不到#include <unistd.h>??
  • 怎样编写一段程序,要求调用fork并在子进程中建立一个新的对话期。验证子进程变成了进程组长而且不再有控制终端。
  • WEB前端 iis7站长之家
  • 关于fork的一段小程序
  • 请问,现在程序还有fork多个进程协同工作的吗?
  • 关于fork()和sleep()程序的疑问,请高手指点
  • 用fork(),exec函数启动一新程序会返回两次执行结果
  • 先pipe() 然后fork() 子进程execl另一个可执行程序
  • 关于fork(),有一段程序不理解。
  • shell程序、fork()函数、execve()函数之间什么关系?
  • unix中的fork2与fork有设么区别?
  • 还是有关fork的问题,fork在一个函数中调用,我被搞胡涂了
  • fork()函数入门级问题:fork()与进程数
  • 一个fork的问题
  • 新手的问题关于fork?
  • 如何理解fork函数返回2次啊?
  • 急于明白Fork的用法.请提供中文解释.谢谢.
  • 关于fork的不解
  • 弱弱的问:fork和exec的区别是什么?
  • 关于fork的讨论
  • 关于fork的疑问?
  • fork之后的输出


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3