Linux——模拟实现一个简单的shell(带重定向)

进程的相关知识是操作系统一个重要的模块。在理解进程概念同时,还需了解如何控制进程。对于进程控制,通常分成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来获取该值

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfsgg.html