Advertisement

<操作系统>C语言实现 UNIX Shell功能及历史记录功能

阅读量:

目标:
1.达成基础shell指令的编写任务,并判断其是否包含&(用于后台运行);
2.构建历史命令记录功能,支持通过!+num方式调用第num条指令,以及!!用于执行最近一次输入的命令。

实现思路:
1.获取用户输入的命令(以字符串形式),并将其拆分为命令与参数的组合:
可借助系统库函数strtok()进行分割,strtok()详情

采用字符指针数组args来保存各个部分,需特别注意在数组末尾设置为NULL。

复制代码
    p = strtok(str," ");
    	while(p){
    		args[i] = p;
    		p = strtok(NULL," ");
    		i++;
    	}
    	args[i] = NULL;
    
    
      
      
      
      
      
      
      
    

命令及对应参数被依次存储至args数组内,其中args[0]用于存放命令本身,其余元素则为相关参数。

  1. 构建一个持续运行的while循环结构,借助fork()系统调用生成子进程,fork()的使用方式为:[fork(

全部评论 (0)

还没有任何评论哟~