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

进程控制

时间:2019-07-26 19:02:00      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:僵尸进程   控制   print   ima   调试   environ   fork   char*   循环   

一、环境变量

通过extern char** environ打印环境变量信息

#include<stdio.h>
extern char ** environ;
int main()
{
        int i;
        for(i=0;environ[i];i++)
        {
                printf("_%s_\n",environ[i]);
        }
        return 0;
}

  

 二、fork函数

技术图片

技术图片

1.创建单个子进程。

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
int main()
{
        pid_t pid; //接收进程返回值
        printf("程序开始运行……\n");
//      sleep(1);
pid=fork();
        if(pid==-1)
        {
                perror("for error:");
                exit(1);
        }
        else if(pid ==0)
        {
                printf("I am child,pid = %u,ppid = %u\n",getpid(),getppid());
        }
        else
        {
                printf("I am Parent,pid = %u,childid =%u,ppid= %u\n",getpid(),pid,getppid());
                sleep(1);
        }


        printf("结束\n");
        return 0;
}

技术图片

 

2.循环创建子进程

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
int main()
{
        int i;
        pid_t pid; //接收进程返回值
        printf("程序开始运行……\n");
        //      sleep(1);
        for(i=0;i<5;i++)
        {
                pid=fork();
                if(pid==-1)
                {
                        perror("for error:");
                        exit(1);
                }
                else if(pid ==0)
                {
                        break;
                }
                else
                {
                }
        }
        if(i<5)
        {       sleep(i);
                printf("I am child %d\n",i+1);
        }
        else
        {
                sleep(i);
                printf("I am parent\n");
        }
        return 0;
}

 技术图片

三、 gdb调试

技术图片

 

 四、exec函数族

技术图片

 

1.execlp

技术图片

 

技术图片

2.execl 

技术图片

技术图片

3.execv

技术图片

 

通过dup2将进程信息写入文件

技术图片

 

五、孤儿进程

技术图片

技术图片

技术图片

 

六、僵尸进程

技术图片

七、wait函数

技术图片

 技术图片

wait只能回收一个子进程,回收多个子进程需要用循环

技术图片

1.正常结束

 技术图片

2.异常退出

技术图片

 

八、waitpid函数

 技术图片

 1.回收指定进程(阻塞)

技术图片

2.回收所有进程,非阻塞,未回收时wpid=0

技术图片

2.回收所有进程

技术图片

 

进程控制

标签:僵尸进程   控制   print   ima   调试   environ   fork   char*   循环   

原文地址:https://www.cnblogs.com/sclu/p/11247533.html

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