当前位置: 技术问答>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的影子(子进程没有被收尸)。这是为什么?
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.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。