Linux进程学习笔记
来源:互联网 发布:什么软件有电视直播 编辑:程序博客网 时间:2024/04/28 09:26
1.对进程的理解
进程是一段程序的一次执行过程。表面上看,可以理解为一个main函数执行了两次,但是细节是:父进程是完整的执行的,从开始到结束;而子进程是fork函数之前的部分没有执行,从fork()函数之后开始执行,一直到程序结束。
2.fork()函数
功能:产生一个子进程
函数原型:
#include <sys/types.h>
#include <unistd.h>
pid_t fork(void);
在父进程中:成功返回子进程的PID,失败返回-1
在子进程中:成功返回0
在fork之前,对内存变量的所有操作将保存到fork()处,作为父进程和子进程的初始内存状态。
如果成功,则从fork位置,子进程和父进程的内存空间都是一样的(除了pid_t这个返回值),可以认为子进程的内存变量就是父进程的一份拷贝。但是从fork()之后,二者的内存空间就开始独立了,父进程中改变某个变量,对子进程将没有任何影响;同样,子进程改变某个变量,对父进程也不会有影响。如果想要二者交换数据,则需要使用进程间通信。
3.wait()函数
功能:父进程将自己挂起,等待子进程结束,再继续运行。
函数原型:
#include <sys/types.h>
#include <sys/wait.h>
pod_t wait(int *stat_loc);
stat_loc:状态信息
返回值:子进程PID
4.孤儿进程
一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。
5.僵尸进程
一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中,直至父进程结束,这种进程称之为僵尸进程。
时间范围:子进程结束后——父进程结束(在父进程结束后,僵死的子进程将成为僵死的孤儿进程,这时就可以有init进程领养,并释放了)
危害:占用进程号,占用资源。
- Linux进程学习笔记
- Linux进程学习笔记
- Linux 进程学习笔记
- linux内核学习笔记:进程
- Linux系统学习笔记:进程
- linux进程管理学习笔记
- Linux系统学习笔记:进程
- Linux进程学习笔记一
- linux 进程学习笔记(1)
- Linux进程调度学习笔记
- Linux学习笔记之---进程
- Linux进程通信学习笔记
- linux进程管理学习笔记
- linux进程管理学习笔记
- Linux进程线程学习笔记
- linux学习笔记之进程
- [学习笔记]Linux进程管理
- Linux进程学习笔记一
- ubuntu下deb包安装说明
- 开发者技术落后、跟不上时代只能怪自己,别牵拖公司没栽培你
- Intent
- 不安装Office操作Excel文件(.xlsx)
- Unix:(提纲)关于目录和文件的操作
- Linux进程学习笔记
- c内存泄漏检查
- 辛星跟您玩转vim第一节之vim的下载与三种模式
- C++11新特性中随机数产生新方法
- Sublime Text 2 实用快捷键[Mac OS X]
- mr任务之从多个Hbase表中读取数据进行处理
- Mongo的安装及使用
- C++标准转换运算符dynamic_cast
- Android中View绘制流程以及invalidate()等相关方法分析