一.项目简介
在使用Linux的过程中,相信大家最熟悉的就是Linux的命令行使用方式了,我们可以给命令行输入任意有效指令, 然后命令行会根据我们输入的指令来完成相应的操作。...然后shell读取新的一行输入,建立一个新的进程,在这个进程中运行程序 并等待这个进程结束。...所以要写一个shell,需要循环以下过程:
获取命令行
解析命令行
建立一个子进程(fork)
替换子进程(execvp)
父进程等待子进程退出(wait)
三.逐步实现项目功能
该部分只讲功能实现的代码逻辑..., 故可能不会包含宏定义和全局变量等实现细节,如需完整的项目代码,请移步本文第四部分.
1.获取命令行
我们将获取命令行做成一个循环,除非用户主动退出,否则一直保持命令行接收指令的状态:...普通命令的执行不会影响父进程,因此我们可以使用fork()创建子进程,然后使用exec*系列进程替换函数来完成相关操作, 代码如下:
void NormalExcute(char *_