Linux c/c++ 进程控制
文章平均质量分 91
Linux c/c++ 进程控制
洪流之源
这个作者很懒,什么都没留下…
展开
-
linux进程系列(8)wait函数
wait函数1、头文件#include #include 2、函数原型1) pid_t wait(int *status);返回: 成功返回子进程ID,出错返回-1功能: 在一个子进程终止前,wait使其调用者阻塞2) pid_t waitpid(pid_t pid, int *status, int options);返回: 成功返回子进程ID,出错返回-原创 2017-07-10 08:52:33 · 498 阅读 · 0 评论 -
linux进程系列(7)僵尸进程
僵尸进程1、子进程结束但是没有完全释放内存(在内核中的task_struct没有释放),该进程就成为僵尸进程。2、当僵尸进程的父进程结束后就会被init进程领养,最终被回收。3、避免僵尸进程1)让僵尸进程的父进程来回收,父进程每隔一段时间来查询子进程是否结束并回收,调用wait()或者waitpid() ,通知内核释放僵尸进程。2)采用信号SIGCHLD通知处理,并在信号处理程原创 2016-11-28 22:18:35 · 429 阅读 · 0 评论 -
linux进程系列(9)wait函数 代码示例
一个父进程创建了三个子进程,三个子进程分别以不同的状态停止运行,通过宏获取当前子进程的结束状态。main.cpp#include #include #include #include #include #include void out_status(int status){ if(WIFEXITED(status)) { printf("normal exti:原创 2017-07-17 11:07:28 · 677 阅读 · 0 评论 -
linux进程系列(6)守护进程与孤儿进程
守护进程是生存期长的一种进程,它们常常在系统引导装入时启动,系统关闭时终止。守护进程有如下几个特点: 1.所有的守护进程都是以超级用户(用户ID为0的root用户)的优先权运行; 2.守护进程没有控制终端,一直在后台运行; 3.守护进程的父进程都是init进程(1号进程)。 什么是孤儿进程呢? 父进程结束,子进程就成为孤儿进程,会由1号进程(i原创 2016-11-25 21:43:21 · 637 阅读 · 0 评论 -
linux进程控制系列(1)进程创建fork、vfork
进程创建就是一个正在运行的进程去创建出另外一个进程,而这个正在运行的进程被称为父进程,被父进程创建出的进程称为子进程。在linux中可以通过在父进程中调用系统调用函数fork()或者vfork函数创建出一个子进程,下面是两个系统调用函数的原型:#include #include pid_t fork(void);返回:子进程中返回0,父进程中返回子进程的进程ID,出错返回-原创 2016-11-11 22:33:55 · 580 阅读 · 0 评论 -
linux进程系列(5)进程链与进程扇
在linux编程中我们或许需要创建多个进程才可以完成任务需求,那么我们怎么创建多个进程呢?下面我们介绍一下进程链与进程扇的概念 所谓进程链就是父进程创建一个子进程,创建的子进程再次创建出属于自己的子进程,这样依次往下循环,如下图所示。 所谓的进程扇就是一个父进程创建出多个子进程,如下图所示。 下面是进程链与进程扇的示原创 2016-11-22 22:25:59 · 3884 阅读 · 1 评论 -
linux进程控制系列(3)父子进程变量虚拟内存地址相同但变量值不同的问题
首先,我们来看一个实例:process_fork3.c/** process_fork3.c** Created on: 2016-11-13* Author: river*//** process_fork.c** Created on: 2016-11-11* Author: river*/原创 2016-11-13 17:40:37 · 2399 阅读 · 0 评论 -
linux进程控制系列(2)进程的继承
fork和vfork函数都是涉及到子进程是否复制父进程的内存空间的问题,这就是进程的继承,下面我们就来讨论一下父进程与子进程的继承关系。 父进程创建出一个子进程,子进程会继承父进程的一些信息,这些信息我们称之为子进程的继承属性,同时子进程也会有自己特有的属性。 子进程从父进程继承来的属性主要有: 用户信息和权限、目录信息、信号信息、环境(也就是环境变量,进程的环境原创 2016-11-13 15:40:34 · 1771 阅读 · 0 评论 -
linux进程系列(4)父子进程的缓存方式写文件
前面的文章讨论了父进程创建了子进程以后,子进程会拷贝父进程代码段、数据段和堆、栈中的数据。那对于父子进程对文件进行基于缓存的写操作是怎么处理的呢?我们先看看下面的代码。process_fork4.c/** process_fork4.c** Created on: 2016-11-13* Author: river*//** proces原创 2016-11-15 21:25:03 · 1107 阅读 · 0 评论