目录
前言
展示效果
实现代码
前言
该代码模拟了shell的实现,也就是解析类似于“ls -a -l"的命令,当我们启动我们自己写的shell的可执行程序时,我们输入"ls"的命令,也可以展示出在shell中输入"ls"时同样的效果,一下为展示效果
展示效果
当我们在系统的shell下输入"ls"时,会显示
以下代码是我自主模拟实现shell的程序执行"ls"命令时的情况
是不是很类似呢,感兴趣的同学可以看看以下代码,自己也模仿模仿哦ε=ε=ε=(~ ̄▽ ̄)~
实现代码
代码语言:javascript复制#include <stdio.h>
#include <string.h>
#include <unistd.h>//sleep函数
//wait函数头文件
#include <sys/types.h>
#include <sys/wait.h>
//exit的函数
#include <stdlib.h>
#define NUM 2024
#define SIZE 100
#define SEP " "
//注意是"",而不是''.因为strtok的参数是char*类型
int main()
{
//0.shell或者软件,只要启动了,使用者不去终止,就始终不能停止,因此要一个死循环
while (1)
{
//1.打印类似于shell命令行前的 [xkjtx@locathost shell@] 的信息
printf("[xkjtx@locatehost myshell]# ");//不要换行,否则就不像shell了,用fflush去刷新缓冲区,避免没有'n'而导致的不输出"[xkjtx@locatehost myshell]# "的问题(我在《制作进度条》的那篇博客讲过)
fflush(stdout);
//2.获取命令行
char cmd_line[NUM];//可以定义为全局变量,注意每次使用前memset(cmd_line, '