进程的相关知识是操作系统一个重要的模块。在理解进程概念同时,还需了解如何控制进程。对于进程控制,通常分成1.进程创建 (fork函数) 2.进程等待(wait系列) 3.进程替换(exec系列) 4.进程退出(exit系列,return)四个方面。在大致熟悉进程控制之后,便可基于此 ,来模拟使用一个简单的myshell,实现简单的命令解析。
在此之前,先来简单回顾进程控制一些基本方法
进程控制
(1)进程创建
进程创建一般通过fork来实现,(关于fork,前面有本人一点小小总结: 戳=> ,这里不再赘述)。
(2)进程终止
通常 进程从1. 从main返回 2. 调用exit 3. _exit 是正常终止(可以通过 echo $? 查看进程退出码) 也可能异常退出。
大部分情况下进程会return退出,return n等同于执行exit(n),因为调用main的运行时函数会将main的返回值当做 exit的参数。而关于exit和_exit函数:
1._exit
#include <unistd.h> void _exit(int status); 参数:status 定义了进程的终止状态,父进程通过wait来获取该值