---恢复内容开始---
一.进程管理:
1.程序与进程:
程序是存储在磁盘上的文件,进程是正在执行的程序
2.进程的分类:
交互进程,批处理进程,守护进程
3.查看进程
ps -aux
4.进程信息表
5.进程动态
O R S s D T X Z L M <
6.父子进程
7.getpid 获取进程号
二.fork
产生子进程,会有两个返回值,返回值是-1 创建子进程失败,0 表示创建成功,还有一个返回值是进程号
父进程返回的是子进程的ID,子程序返回0;
产生的子进程是父进程的副本,子进程会复制父进程的堆,栈,全局。静态数据段,IO流的缓冲区。而vfork则不会复制,
父进程在子进程之前结束死亡,子程序就会变成孤儿进程,会被init(1)回收
子程序在父程序之前结束,会被父进程回收,如果没有及时回收,就会变成僵尸进程
vfork 跟exel簇连用才能创建子进程,效率比较高
三.进程的正常退出
1. 跟main函数里一样,return 0 ,exit(0);
2. 标准C的exit函数
在exit结束之前会调用on_exit,atexit函数
四.进程的异常退出
1. 调用abort函数
2. ctrl+/ ctrl+c ctrl+z(挂起)
3. 最后一个线程受到取消,线程做出响应
五.子进程的收回
1. wait
2.waitpid
---恢复内容结束---