1. #include <stdio.h>
  2. #include <string.h>
  3. #include <windows.h>
  4. char prog[],token[],ch,sa[];
  5. char *mean[]={"主要用来显示一个目录下的文件和子目录。", "改变或显示当前目录", "创建一个子目录 ", " 删除空子目录 ", "清除显示器屏幕上的内容,使DOS提示符到屏幕左上角 "};
  6. int syn,p,m,n,sum;
  7. char *rwtab[]={"dir","cd","md","rd","cls","help","exit"};
  8. scaner();
  9.  
  10. void main()
  11. {
  12. int i=;
  13. printf("Microsoft Windows [版本 6.3.9600]\n");
  14. printf("<c> 2013 Microsoft Corporation。保留所有权利\n");
  15. do{
  16. scaner();
  17. switch(syn)
  18. {case :{
  19. if(n==)
  20. {
  21. for(i=;i<;i++){
  22. strcpy(sa,token);
  23. system(sa);
  24. printf("%-5s%s\n",rwtab[i],mean[i]);
  25.  
  26. }
  27. }
  28. else if(n==) break;
  29. else{
  30. strcpy(sa,token);
  31. system(sa);
  32. printf("'%s'是内部命令,作用是:%s\n\n",token,mean[n]);
  33. }
  34. }
  35. break;
  36.  
  37. default: printf("'%s'不是内部命令。\n",token);
  38. break;
  39. }
  40. }while(strcmp(token,"exit"));
  41. }
  42.  
  43. scaner()
  44. {
  45. sum=;
  46. p=;
  47. for(m=;m<;m++)
  48. {
  49. prog[m]=NULL;
  50. token[m]=NULL;
  51. }
  52. printf("\n\nC:\Documents and Settings\hskd>");
  53. do{
  54. scanf("%c",&ch);
  55. prog[p++]=ch;
  56. }while(ch!='\n');
  57. for (p=;p<;p++) {
  58. prog[p] = tolower(prog[p]); //大小写转换
  59. }
  60. p=;
  61. for(m=;m<;m++)
  62. token[m++]=NULL;
  63. ch=prog[p++];
  64. m=;
  65. while((ch==' ')||(ch=='\n'))
  66. ch=prog[p++];
  67. if(((ch<='z')&&(ch>='a'))||((ch<='Z')&&(ch>='A')))
  68. { while(((ch<='z')&&(ch>='a'))||((ch<='Z')&&(ch>='A'))||((ch>='')&&(ch<='')))
  69. {token[m++]=ch;
  70. ch=prog[p++];
  71. }
  72. p--;
  73. syn=;
  74. for(n=;n<;n++)
  75. if(strcmp(token,rwtab[n])==)
  76. {
  77. syn=;
  78. return n;
  79. }
  80. }
  81. return ;
  82. }

操作系统——MiniDos的更多相关文章

  1. 操作系统篇-调用门与特权级(CPL、DPL和RPL)

    || 版权声明:本文为博主原创文章,未经博主允许不得转载. 一.前言 在前两篇文章(<操作系统篇-浅谈实模式与保护模式>和<操作系统篇-分段机制与GDT|LDT>)中,我们提到 ...

  2. 操作系统篇-分段机制与GDT|LDT

    || 版权声明:本文为博主原创文章,未经博主允许不得转载. 一.前言     在<操作系统篇-浅谈实模式与保护模式>中提到了两种模式,我们说在操作系统中,其实大部分时间是待在保护模式中的. ...

  3. 操作系统篇-hello world(免系统运行程序)

     || 版权声明:本文为博主原创文章,未经博主允许不得转载. 一.前言     今天起开始分享关于操作系统的相关知识,本人也是菜鸟一个,正处于学习阶段,这整个操作系统篇也是我边学习边总结的一些结果,希 ...

  4. Linux实战教学笔记03:操作系统发展历程及系统版本选择

    标签(空格分隔): Linux实战教学笔记-陈思齐 第1章 Linux简介 1.1 什么是操作系统? 简单讲:操作系统就是一个人与计算机硬件的中介. 操作系统,英文名称Operating System ...

  5. ucos实时操作系统学习笔记——任务间通信(消息)

    ucos另一种任务间通信的机制是消息(mbox),个人感觉是它是queue中只有一个信息的特殊情况,从代码中可以很清楚的看到,因为之前有关于queue的学习笔记,所以一并讲一下mbox.为什么有了qu ...

  6. ucos实时操作系统学习笔记——任务间通信(队列)

    ucos操作系统中的queue机制同样使用了event机制来实现,其实和前面的sem,mutex实现类似,所不同的是对sem而言,任务想获得信号量,对mutex而言,任务想获得的是互斥锁.任务间通信的 ...

  7. ucos实时操作系统学习笔记——任务间通信(信号量)

    ucos实时操作系统的任务间通信有好多种,本人主要学习了sem, mutex, queue, messagebox这四种.系统内核代码中,这几种任务间通信机制的实现机制相似,接下来记录一下本人对核心代 ...

  8. ucos实时操作系统学习笔记——内核结构和任务创建

    对于ucos实时操作系统,邵贝贝的那本书已经写得很详细了,我因为之前不深的研究过ucos,所以在这里做一个笔记,写一些个人对该操作系统的理解,仅仅是个人理解,如果有人看到这边随笔有不对的地方,望给我指 ...

  9. ucos实时操作系统学习笔记——操作系统在STM32的移植

    使用ucos实时操作系统是在上学的时候,导师科研项目中.那时候就是网上找到操作系统移植教程以及应用教程依葫芦画瓢,功能实现也就罢了,没有很深入的去研究过这个东西.后来工作了,闲来无聊就研究了一下这个只 ...

随机推荐

  1. 基于Linux的Samba开源共享解决方案测试(一)

    转自http://blog.csdn.net/u013394982/article/details/17914429 Linux操作系统 Linux是一类Unix计算机操作系统的统称.Linux操作系 ...

  2. CSS滚动条样式设置

    webkit浏览器css设置滚动条 主要有下面7个属性 ::-webkit-scrollbar 滚动条整体部分,可以设置宽度啥的 ::-webkit-scrollbar-button 滚动条两端的按钮 ...

  3. java技术-重点方向

    多线程 锁 事务 缓存 hashmap 并发编程

  4. JVM 技术分享(初级)

    一个java程序是怎样运行起来的: public class Test { public static void main(String[] args){ System.out.println(&qu ...

  5. leetcode27

    public class Solution { public int RemoveElement(int[] nums, int val) { var len = nums.Length; ; ; i ...

  6. Caused by: java.lang.IllegalStateException: Expected raw type form of org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$Match

    spring 4.0.2,mybatis 3.2.6,aspectjweaver 1.8.10 使用的时候,报错: Caused by: java.lang.IllegalStateException ...

  7. Activity服务类-1 DynamicBpmnService服务类

    这个服务是5.19版本后新增的一个服务,和RepositoryService的作用相似,都是与流程定义有关,但是却完全不同.从名字上来看是动态的BPMN服务,看里面的方法都是改变流程的相关属性.这个方 ...

  8. Others-Goldengate 数据同步

    GoldenGate 是一家创建于1995年的美国公司,开发总部设在旧金山,在北美,欧洲和亚洲(包括新加坡.印度.澳大利亚)设有支持中心. 公司名称 GoldenGate 总部地点 旧金山 成立时间 ...

  9. LInux下LD_LIBRARY_PATH的作用与设置

    LD_LIBRARY_PATH环境变量主要是用于指定动态链接器(Id)超早elf可执行文件运行时所依赖的动态库(so)的路径,其内容是以冒号分隔的路径列表. Id链接器优先在该变量设置的路径中查找,若 ...

  10. autolayout不work

    对于代码创建的UIView,将下面的选项关掉 [label3 setTranslatesAutoresizingMaskIntoConstraints:NO];