目录
2.获取进程的ID和父进程的ID 函数:getpid与getppid
5.给子进程收尸,让父进程挂起(阻塞)wait函数与waitpid
一、进程的相关概念
1.什么是进程
程序:有一定逻辑的语句的集合,一般保存在文件中
运行程序时,系统会给程序映射一个虚拟的独立内存空间,程序就在该内存空间中运行,程序在内存空间中运行的过程,成为一个进程。
进程和程序的区别
程序:
是静态的
是一些保存在磁盘上的指令的有序集合
没有任何执行的概念
进程:
是一个动态的概念,
是程序执行的过程
包括创建、调度和消亡
2.进程的特征
1》动态性
是程序的一次执行过程
2》并发性
多个进程可以同时运行
3》独立性
每个进程有自己的独立虚拟内存空间
4》异步性
多个进程的运行是可以没有预先预定,各自运行。
3.进程的状态
利用ps可以查看到相关进程
如图 PID是进程的ID类似身份号
4.进程的分类:
1》交互进程:
该类进程是由shell控制和运行的。交互进程既可以在前台运行,也可以在后台运行。
2》批处理进程:
该类进程不属于某个终端,它被提交到一个队列中以便顺序执行。
例如:shell脚本程序:
//创建脚本文件:shell.sh
ls -l
cd ~
ls -l
cd 22071/process/
touch 1.txt
ls -l
//修改脚本文件权限
chmod a+x shell.sh
//运行脚本文件
$ ./shell.sh
运行效果:
3》守护进程:
该类进程在后台运行。它一般在Linux启动时开始执行,系统关闭时才结束。
二、进程函数的调用(api函数)
1,创建进程函数 pid_t fork(void);
//返回值是pid_t 类型的结构体
//涉及的头文件:
#include <sys/types.h>
#include <unistd.h