毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

操作系统课程设计-成组链接模拟unix文件系统 第4页

更新时间:2007-10-30:  来源:毕业论文

 

void help()          //显示帮助信息
{
 printf("注意:创建的文件长度 < 100\n\n"); //说明文件
 printf("0.初始化-------------------------format\n");
 printf("1.查看当前目录文件列表-----------dir\n");
 printf("2.查看文件-----------------------cat-----(cat + 空格 + 文件名)  \n");
 printf("3.查看系统信息-------------------ls    \n");
 printf("4.创建目录-----------------------md------(md  + 空格 + 目录名)  \n");
 printf("5.创建文件-----------------------vi------(vi  + 空格 + 文件名 + 文件长度)  \n");
 printf("6.删除文件-----------------------del-----(del + 空格 + 文件名) \n");
 printf("7.删除目录-----------------------deldir--(del + 空格 + 目录名)\n");
 printf("8.进入当前目录下的指定目录-------cd--------(cd + 空格 + 目录名)\n");
 printf("9.返回上一级目录-----------------cd..  \n");
 printf("10.显示帮助命令-----------------help  \n");
 printf("11.退出文件模拟------------------quit  \n");
}
void main()          //主函数
{
 char tmp[10],com[10],tmp1[10],k;
 struct command tmp2[10];
 int i, j=0,p,len=0;
 FILE *fp;
 help();
 strcpy(cmd[0].com,"format");    //将各个命令存进命令表
 strcpy(cmd[1].com,"dir");
 strcpy(cmd[2].com,"cat");
 strcpy(cmd[3].com,"ls");
 strcpy(cmd[4].com,"md");
 strcpy(cmd[5].com,"vi");
 strcpy(cmd[6].com,"del");
 strcpy(cmd[7].com,"deldir");
 strcpy(cmd[8].com,"cd");
 strcpy(cmd[9].com,"cd..");
 strcpy(cmd[10].com,"help");
 strcpy(cmd[11].com,"quit");
 if((fp=fopen("system","rb"))==NULL)   //判断系统文件是否存在
 {
  printf("can not open file\n");
  printf("format the disk  Y / N \n");
  scanf("%c",&k);
  if(k=='y')
   format(); 
 }
 else
 {
  read_file(fp);       //读取系统文件的内容
 }
 
 while(1)
 {
  j=0;         //必须重新给恢复0否则出错
  strcpy(tmp,cur_dir);
  while(strcmp(tmp,"root")!=0)
  {
   for(i=0;i<640;i++)
   {
    p=root[i].i_num;
    if(strcmp(tmp,root[i].file_name)==0 && (i_node[p].file_style==0))
    {
     strcpy(tmp2[j].com,tmp);
     j++;
     strcpy(tmp,root[i].dir_name);
    }
   }
  }
  
  strcpy(tmp2[j].com,tmp);
  for(i=j;i>=0;i--)
  {
   printf("%s/",tmp2[i].com); 
  }

  scanf("%s",com);       //输入命令并且查找命令的相关操作
  for(i=0;i<12;i++)      
  {
   if(strcmp(com,cmd[i].com)==0)
   {
    p=i;
    break;
   }
  }
  if(i==12)         //如果没有这个语句以后输入的命令都和第一次输入的效果一样
  {
   p=13; //随便的一个值
  }
  switch(p)
  {
  case 0: format();       //初始化
    break;
  case 1: display_curdir();     //查看当前目录下的文件列表      
    break;
  case 2: scanf("%s",tmp);     //查看文件 
    open_file(tmp);  
    break;
  case 3: display_sys();      //查看系统信息
    break;
  case 4:scanf("%s",tmp);      //创建目录    
    create_dir(tmp);  
    break;
  case 5: scanf("%s",tmp);     //创建文件 
    scanf("%d",&len);
    create_file(tmp,len);  
    break;
  case 6: scanf("%s",tmp);     //删除文件
    for(i=0;i<640;i++)     //判断文件是不是正规文件
    {
     j=root[i].i_num;
     if(strcmp(tmp,root[i].file_name)==0 && (i_node[j].file_style)==1)
     {
      del_file(tmp);
      break;
     }
    }
    if(i==640)
    {
    printf("这个不是正规文件文件\n");
    }     
    break;
  case 7: 
    scanf("%s",tmp);     //删除目录
    del_dir(tmp);   
    break;
  case 8: scanf("%s",tmp1);     //进入当前目录下的指定目录   相当于进入目录  cd  +  目录名
    display_dir(tmp1);
    break;
  case 9: back_dir();       //返回上一级目录
    break;
  case 10:help();
    break;
  case 11:write_file(fp);      //将磁盘利用信息写进系统文件,退出
    return;
  default:printf("SORRY,没有这个命令\n");
    break;
  }
 }
}

上一页  [1] [2] [3] [4] 

操作系统课程设计-成组链接模拟unix文件系统 第4页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。