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

【求助】子进程中调用raise(SIGSTOP)的问题

    来源: 互联网  发布时间:2017-01-10

    本文导语:  本帖最后由 Redshadows 于 2011-10-22 18:14:53 编辑 int main(int argc, char *argv[]) {         int                sockfd, err, n;         pid_t                child_pid;          if ( (child_pid = fork()) == 0) {  ...

本帖最后由 Redshadows 于 2011-10-22 18:14:53 编辑
int



main(int argc, char *argv[])



{
        int                sockfd, err, n;
        pid_t                child_pid;

         if ( (child_pid = fork()) == 0) {
                printf("child before raisen");
                raise(SIGSTOP);
                printf("child exitn");
                exit(0);
        } else {
                printf("child pid is %dn", child_pid);
                sleep(1);
                kill(child_pid, SIGCONT);
                printf("parent exitn");
        }
        exit(0);
}

上面代码运行的结果是:
child pid is 2752
child before raise
parent exit
child exit
父进程sleep一秒钟后,发信号给子进程使其继续运行,正确。
int
main(int argc, char *argv[])
{
        int                sockfd, err, n;
        pid_t                child_pid;
        if ( (child_pid = fork()) == 0) {
                printf("child before raisen");
                raise(SIGSTOP);
                printf("child exitn");
                exit(0);
        } else {
                printf("child pid is %dn", child_pid);
                sleep(1);
                printf("parent exitn");
        }
        exit(0);
}

但当我把父进程的kill语句删除掉以后,运行结果为:
child pid is 2863
child before raise
parent exit

此时执行ps,发现:
  PID TTY          TIME CMD
1976 pts/0    00:00:00 bash
2864 pts/0    00:00:00 ps

请问,既然子进程在raise(SIGSTOP)处停止,而父进程也没有向其发送继续的信号,为何子进程消失了,而不是一直被挂起?
难道是父进程结束后,子进程被init接收后被结束掉???
不懂,求各位指点一下,谢谢~~

|
楼主的代码无形中产生了zombin,因为你没join.

ps aux | grep 2863看看?

    
 
 

您可能感兴趣的文章:

  • ▲ 紧急求助: 如何在打开一个链接时,调用一个JAVABEAN ? ▲
  • 重分求助!!!!javascript如何调用客户端dll问题
  • [求助]如何获取一个程序所使用的系统调用和参数?
  • 高分求助:在java中如何调用outlook express,急,急,急!!
  • 【求助】:如何用ioctl()函数调用一个驱动程序
  • 求助:能给出一个在jsp里调用ActiveX控件的代码吗?
  • 求助!!shell调用问题
  • [求助]popen 函数引起 shell 调用, sh 成为僵尸进程.
  • C++如何调用库里面的C函数?求助~~
  • 求助:内核系统调用的使用问题
  • 【求助】如何增加一个系统调用
  • 求助关于Java调用shell再传值给shell的问题
  • 求助socket编程问题:C/S模式.客户端调用Winsock函数connect()的时候,返回错误码是10065(主机路由不可达).
  • 高分求助有关利用Linux的系统调用read()实现
  • 求助panel之间方法调用的问题(非常焦急)
  • linux共享库调用求助
  • 求助 ubuntu系统下C开发调用内核函数总报ndefined reference错误
  • 100分急求助linux 下如何调用api来控制软件的读入数据的方式?面试的题,在线等!帮帮小弟忙呀!
  • 系统调用小实验_新手求助
  • 有关fork()调用的初级问题,急急急!!!高分求助。
  • 我想让vfork后就execl一进程,同时让execl出来的进程之间能相互通信,求助
  • 求助:信号 --13 进程中断
  • 【求助】多进程中 内核信号量无效?
  • 关于僵死进程,求助
  • 新人求助,进程调度的问题.
  • 求助 linux进程管理
  • linux下进程并发问题。急!!!求助!!!
  • 菜鸟求助, Linux进程的问题
  • 紧急求助,关于kill进程 , 大家帮帮忙啊 !!!
  • 编程语言 iis7站长之家
  • 求助:怎样获得freebsd中的进程pid?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 高分求助高分求助高分求助高分求助高分求助高分求助
  • 怎样读取HZK24S前十区的内容啊???求助求助
  • 紧急求助!紧急求助!
  • 【求助】iplanet问题,求助高手解答!
  • 菜鸟求助,solaris下计算问题求助
  • 【求助】SOS紧急求助..............极为简单的问题...跪求....
  • 高分求助啊!求助SUSE 10.0 不能上网.
  • 急急急急急急急啊,紧急求助啊!!!!!满分求助啊!!!!!!
  • 求助:linux下 vim的配置(高分求助)
  • red hat怎么安装gcc啊!总是出错,求助求助啊!!!yum源怎么改啊!!
  • 求助~~求助 ~~linux文件读写问题
  • 求助,安装了红帽子后进不了
  • 新装linux求助
  • linux的 iptables问题求助
  • (高分求助)请问,那里有软件开发的<设计文档>
  • 一个简单的问题,高分求助!!!
  • 紧急求助:Unix下给文件夹重命名用什么命令?谢谢!!!!
  • VJ的一个问题,高分求助,熟悉VJ得请进!
  • 高分求助
  • 紧急求助java多线程编程!!!!!!!!!!!!!


  • 站内导航:


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

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

    浙ICP备11055608号-3