码迷,mamicode.com
首页 > 系统相关 > 详细

【Linux】孤儿进程&僵尸进程

时间:2014-09-24 21:18:37      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   for   文件   数据   div   sp   

 

孤儿进程

  父进程先死,子进程托孤给一号进程

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>


int main(void)
{
    pid_t pid;
    
    pid = fork();
    
    if(-1 == pid)
    {
        return 0;
    }
    if(0 == pid)
    {
        sleep(100);
    }
    if(pid > 0)
    {
        ;
    }
    return 0;
}

 

僵死进程

  子进程先死,父进程还没有来得及收尸

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>


int main(void)
{
    pid_t pid;
    
    pid = fork();
    
    if(-1 == pid)
    {
        return 0;
    }
    if(0 == pid)
    {
        
    }
    if(pid > 0)
    {
        sleep(100);
    }
    return 0;
}

 

避免僵死进程

  创建子进程的时候可以不管子进程,让Linux内核去管

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>


int main(void)
{
    pid_t pid;
    
    pid = fork();
    
    // 通过信号注册函数,忽略子进程死的信号
    signal(SIGCHLD, SIG_IGN);
    
    if(-1 == pid)
    {
        return 0;
    }
    if(0 == pid)
    {
        
    }
    if(pid > 0)
    {
        sleep(100);
    }
    return 0;
}

 

当父子进程共享文件描述符情况

   两个fd指向同一块内存

    因为两个进程共享了文件指针偏移量,所以都能向文件中写数据

 

 

信号:异步处理事件,是一种机制

  我们的程序在顺序执行的同时,能支持异步的调用信号处理函数

【Linux】孤儿进程&僵尸进程

标签:style   blog   color   io   for   文件   数据   div   sp   

原文地址:http://www.cnblogs.com/shichuan/p/3989591.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!