• 大小: 0.01M
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-16
  • 语言: 其他
  • 标签: 其他  

资源简介

操作系统.zip

资源截图

代码片段和文件信息

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include 
using namespace std;


const int M=256;
const int N=10;
char cmd[M];           //输入的命令
char word[N][M];         //解析好的命令
int  Read_cmd();            //读取命令
int Memory_cmd();          //解析命令
int do_cmd(); //执行命令
int do_pwd(); //显示当前路径
int do_list(); //列出目录及文件
int do_cd(); //改变当前文件夹路径
int do_mkdir(); //新建目录
int do_rmdir(); //删除目录
int do_copy(); //复制文件
int  do_rename();//重命名文件
int exit(); //退出系统

int  Read_cmd(){   //读取命令
char ch[M];   
int i = 0;
cin.getline(ch M);
strcpy(cmd ch);   //复制字符串
return 0;
}

int Memory_cmd(){    //解析命令
int i j = 0 k = 0;
int flag = 1;   //前面有无分割符,1表示有分割符, 0表示无分割符
int len = strlen(cmd);   //获取cmd的长度
for(i=0; i if(cmd[i] == ‘ ‘ || cmd[i] == ‘\t‘){  //有分割符
if(flag == 0){
word[k][j] = 0;   //字符串结束
k++;
j = 0;
flag = 1;
}

}else{
word[k][j] = cmd[i];  //将字符存储
j++;
flag = 0;
}
}
if(flag == 1){
word[k][0] = 0;   //标志read_cmd结束
}else{
word[k][j] = 0;
k++;
word[k][0] = 0;
}
return 1;
}

int do_cmd(){    //执行命令
if(strcmp(“pwd“word[0]) == 0){ //显示当前所在目录的路径
do_pwd();
return 0;
}else if(strcmp(“list“word[0]) == 0){ //显示当前目录的所有文件
do_list();
return 0;
}else if(strcmp(“cd“word[0]) == 0){ //改变当前目录路径
do_cd();
return 0;
}else if(strcmp(“mkdir“word[0]) == 0){ //新建目录
do_mkdir();
return 0;
}else if(strcmp(“rmdir“word[0]) == 0){ //删除目录
do_rmdir();
return 0;
}else if(strcmp(“copy“word[0]) == 0){ //复制文件
do_copy();
return 0;
}else if(strcmp(“rename“word[0]) == 0){ //重命名
do_rename();
return 0;
}else if(strcmp(“exit“word[0]) == 0){ //退出系统
exit(0);
return 0;
}
}
int do_list(){    //列出目录及文件
DIR* dirp;
int count=0;
struct dirent* ent;
if(strcmp(““ word[1]) == 0){   //命令不带参数
dirp = opendir(“.“);  //打开当前目录
}else{
dirp = opendir(word[1]);  //打开有参数的目录
}

if(dirp == NULL){
cout<<“打开目录失败!“< return -1;
}

while((ent=readdir(dirp)) != NULL){
if(ent->d_name[0] != ‘.‘){
cout<d_name<<“ “;
count++;
}

if(count%8==0)

cout< }
cout< closedir(dirp);  //关闭目录
return 0;
}

int do_cd(){   //改变当前文件夹
if((strcmp(““ word[1])) == 0){  //不带参数,改变失败
return -1;
}
if(chdir(word[1]) == -1){   //目录不存在
cout<<“目录不存在!“< return -1;
}
if(strcmp(“..“word[1]) != 0){
cout<<“     改变目录 “< cout<<“     路径: “;
do_pwd();   //显示当前路径
}else{
cout<<“     返回上一层目录“< cout<<“     路径: “;
do_pwd();   //显示当前路径
}
return 0;
}
int do_rename()
{
  //重命名文件
 if(rename(word[1] word[2]) == 0) 
{
     cout<   } 
else
     cout<

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-01-12 22:48  操作系统\
     文件        6437  2018-12-27 13:37  操作系统\os.cpp
     文件       14848  2019-01-12 22:48  操作系统\《操作系统课程设计》题目.doc

评论

共有 条评论