设为首页 加入收藏

TOP

C/C++教程之父子进程
2017-01-10 08:14:56 】 浏览:407
Tags:C/C 教程 父子 进程
C/C++教程之父子进程:进程和线程是服务器 编程的常客,真正理解清楚并不是一件容易的事,C/C++作为难学易用的代表,在服务器编程上表现的尤为明显,用之前需要理解这个东西的体系架构是怎样的,否则稍不注意就是一场灾难,然后末日来临。

一、什么是进程

直观一点可以理解为一个执行起来的程序

所有进程属性采用结构体维护->树状结构体

ps 查看所有进程常见属性

top 查看系统进程执行状况

pstree 树形显示进程

kill 向进程发送信号

kill -s 信号 进程id

kill -l 显示进程能接收的所有信号

二、创建进程

进程有关的创建函数

int system(const char* filename);

建立独立进程,拥有独立的代码空间,独立的内存空间

等待新的进程执行完毕,system才返回

popen

exec系列函数

fork

pid_t fork();

创建进程

三、理解进程

1.父子进程的关系

独立的两个进程

pstree上面互为父子关系的两个进程节点

2.问题:

父进程先结束导致

-> 子进程就直接依托根进程init,成为孤儿进程,无任何危害

子进程先结束导致

-> 子进程会成为僵尸进程,不占用内存,不占用CPU,但在进程树占用一个节点

造成进程名额的资源浪费,必须处理僵尸进程

3.僵尸进程使用wait回收

4.父进程如何知道子进程退出

子进程结束通常会向父进程发送一个信号SIGCHLD(17)

5.父进程处理子进程退出信号

signal(int sig,void (*fun) (int));

向系统注册:只要sig信号发生,系统停止进程,并调用注册函数fun

当函数执行完毕,继续原来进程

6.父子进程的资源访问

6.1 内存资源

子进程克隆整个内存区域,但内存区域指向不同的物理空间

但内存独立,不能相互访问

6.2 文件资源

两个进程之间,文件描述符指向的是同一个文件

7. 多进程与文件锁

四、进程控制(后续更新...)

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C++输入重定向 讲讲编程竞赛本机.. 下一篇C/C++STL多维数组(vector(vector(..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目