【Linux】1w详解如何实现一个简单的shell
目录
实现思路
1. 交互 获取命令行
2. 子串分割 解析命令行
3. 指令的判断 内建命令
4. 普通命令的执行
补充:vim 文本替换
整体代码
重点思考
1.getenv和putenv是什么意思
2.代码extern char **environ;
3.内建命令是什么
4.lastcode = WEXITSTATUS(status);
5.execvp(_argv[0], _argv);的调用
6._argc&_argv
实现思路
1. 交互 获取命令行
显示提示符和获取用户输入
Shell本质是一个死循环,不断地显示提示符和获取用户输入。
memset
函数
memset
函数用于将一段内存区域设置为指定的值。它的原型是:
void *memset(void *s, int c, size_t n);
参数说明:
-
s
:指向要填充的内存区域的指针。 -
c
:要设置的值(以无符号字符形式传递,但实际存储在内存中的每个字节的值是该无符号字符的值)。 -
n
:要设置的字节数。
示例用法:
char command_line[NUM];
memset(command_line, ' ', sizeof(command_line) * sizeof(char));
这里的代码表示将 command_line
数组的每个字节都设置为