《操作系统实践》上机实践报告
课程名称:操作系统实践 年级:07 级 上机实践成绩:
指导教师: 上机实践名称:编写自己的 shell 组号:
上机实践编号:No.4 上机实践日期: 上机实践时间:6 学时
实践内容:
一、目的
学习编写 shell,包括如何执行程序,创建进程,如何执行脚本语言,以及对于环境变量
的处理。
二、程序功能
实现了基本的 shell 功能,能执行系统常用命令,ls、pwd、more、mv、cp 等,也能执行
用户编写的一般应用程序,同时能实现 cd 命令,转到指定的目录下。
对于脚本的支持,能够处理 if,then,else,fi 和 while,do,done 流程。我们在内置命令中增加
了对数字的比较和加减运算,如 i>1、i<1、i>=1、i<=1、i==1 和 i+=1、i-=1,在 while 的 do
命令中支持了$i 和 echo $i 来输出一个数字。
对于命令提示符,我们通过尽量接近系统的 shell,实现了读取当前用户的用户名和当前
用户所在的目录名。
三、函数功能和参数说明
整个项目包括如下多个文件:
smsh.c:
int main(); //主函数,展现整个程序的工作流程。
void setup(); //初始化 shell
void fatal(); //出错提示
execute.c:
int execute(char *argv[]); //执行一个程序
splitline.c:
char *next_cmd(char *prompt,FILE *fp); //读入下一行命令
char **splitline(char *line); //把一行由空格隔开的指令分成多个字符串
char *newstr(char *s,int l); //新建一个字符串
void freelist(char **list); //释放 splitline 返回的字符列
void emalloc(size_t n); //动态申请空间
void *erealloc(void *p,size_t n); //动态申请空间
process.c:
第 1 页 共 10 页
- 1
- 2
前往页