博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
操作系统实验一 命令解释程序的编写
阅读量:7069 次
发布时间:2019-06-28

本文共 1715 字,大约阅读时间需要 5 分钟。

一、目的和要求

1. 实验目的

(1)掌握命令解释程序的原理;

(2)掌握简单的DOS调用方法;

(3)掌握C语言编程初步。

2.实验要求

编写类似于DOS,UNIX的命令行解释程序

(1)自行定义系统提示符

(2)自定义命令集(8-10个)

(3)用户输入HELP以查找命令的帮助

(4)列出命令的功能,区分内部还是外部命令

(5)用户输入QUIT退出

(6)内部命令有dir, cd, md, rd, cls, date, time, ren, copy等。

二、实验内容

根据教师指定的实验课题,完成设计、编码、测试工作。

、实验环境

1.PC微机

2.Windows 操作系统

3.C/C++程序开发集成环境

四、实验原理及核心算法参考程序段

  1. 命令解释程序的原理:

命令解释程序的主要功能是:

1)        接受和执行一条用户从键盘输入的命令,它通常保存一张命令名字(动词)表,其中记录着所有操作命令及其处理程序的入口地址或有关信息。

#include
#include
#include
#define head0 "Microsoft Windows10 [版本 5.1.2600]"#define head1 "
版权所有 1985-2001 Microsoft Corp."#define head2 "C:\\Documents and Settings\\Administrator>"struct CMD{ char command[10]; int type; char function[50];};typedef struct node{ struct CMD data; struct node *next;}cmd;void search(cmd *l){ cmd *p; p=l; char b[10]; scanf("%s",b); getchar(); while(p->next!=NULL){ p=p->next; if(stricmp(b,p->data.command)==0){ system(b); printf("\n"); goto vc1; } } printf("\'%s\'不是内部或外部命令,也不是可运行的程序\n或批处理文件。\n",b); vc1:;}int main(){ FILE *fp1; cmd *p,*q,*a; q=(cmd *)malloc(sizeof(cmd)); q->next=NULL; p=q; fp1=fopen("cmd功能.txt","r"); if(fp1==NULL){ printf("不能打开文件"); return 0; } while(!feof(fp1)){ a=(cmd *)malloc(sizeof(cmd)); p->next=a; p=a; p->next=NULL; fscanf(fp1,"%s %d %s",&p->data.command,&p->data.type,&p->data.function); } fclose(fp1); printf(head0"\n"); printf(head1"\n\n"); printf(head2);vc2:search(q); printf(head2); goto vc2;}

转载于:https://www.cnblogs.com/qazwsxedcrfv/p/5315765.html

你可能感兴趣的文章
盘点智能硬件中那些脑洞大开的黑科技
查看>>
[HDFS Manual] CH4 HDFS High Availability Using the Quorum Journal Manager
查看>>
maven pom.xml详解
查看>>
活动目录数据库文件介绍
查看>>
Linux下配置tomcat+apr+native应对高并发
查看>>
html5播放mp4视频代码
查看>>
孟子>正文 活动目录(Active Directory)域故障解决实例(转载)
查看>>
NoSuchMethodError: org.hibernate.SessionFactory.openSession
查看>>
textarea自动调整高宽
查看>>
python基础---面向对象高级
查看>>
vim的分屏
查看>>
windows客户端安装
查看>>
关于大型网站技术演进的思考(十八)--网站静态化处理—反向代理(10)
查看>>
Centos7怎么安装gnome桌面及远程桌面VNC
查看>>
mount挂载报错mount:you must specify the filesystem type
查看>>
yaf 模块与控制器
查看>>
Python 模块调用和global的用法
查看>>
Ubuntu 12.04 修改/etc/resolv.conf重启后还原成修改前状态解决办法
查看>>
Python—redis
查看>>
HPE牵手DDN打造整合的高性能服务器存储产品组合
查看>>