【Linux C/C++】 第05讲 父子进程
来源:互联网 发布:金海岸大酒店网络地图 编辑:程序博客网 时间:2024/05/01 12:51
进程和线程是服务器编程的常客,真正理解清楚并不是一件容易的事,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. 多进程与文件锁
四、进程控制(后续更新...)
- 【Linux C/C++】 第05讲 父子进程
- Linux C 父子进程 与 有名管道
- 【Linux C/C++】 第04讲 多进程TCP传输文件
- Linux C——使用父子进程实现TCP通信
- linux c之通过管道父子进程实现同步通信
- 【Linux C/C++】 第03讲 makefile详解
- C语言父子进程--waitpid的用法
- linux 父子进程联系
- linux父子进程
- Linux父子进程同步
- C语言无名管道实现父子进程间通信
- 父子进程的双向通讯简明解读(c程序)。
- 【Linux C/C++】 第01讲 HelloWorld程序内存分区详解
- 【Linux C/C++】 第02讲 HelloWorld程序编译流程详解
- 【Linux C/C++】 第09讲 HTTP协议与浏览器显示网页
- 第010讲 通配符选择器 父子选择器
- c语言程序设计(第1讲)关键字
- linux c 创建进程
- eclipse启动tomcat 访问http://localhost:8080 报404错误
- Java集合类框架—Set、HashSet、TreeSet
- Date、Calendar类
- 多干一点, 多向前一步
- QT5提示can not find -lGL的解决方法
- 【Linux C/C++】 第05讲 父子进程
- 学生信息管理系统总结(一)
- 01 像学任何编程语言一样,先从hello world开始
- debian mount windows share directies
- Xcode 在真机上运行的时候遇 A unknown error occurred
- android中三种动画
- 视图背景颜色渐变、画圆、动画
- Java提高班--注解
- linux下的定时器添加