fclose(fp);
for (int i=0;i if (!flag_user) { } while (flag) { display_cur_dir(cur_dir_id); cout<<\< cur_dir_id=creat_dir(users[cur_user_id].username,cur_dir_id); if (users[cur_user_id].username==direct[i]->file_name { } flag_user=true; cur_dir_id=i;i=DIR_NUM; &&direct[i]->p_id==-1&&direct[i]->i_num!=-1) (p[0]==\||p[0]==\||p[0]==\||p[0]==\||p[0]==\||p[0]==\||p[0]==\||p[0]==\)//cd mkdir rmdir rf mf df wf { } if (p[0]==\) { fflush(stdin); cin>>p[2];fflush(stdin); } if (p[0]==\|| p[0]==\) { } switch (compare(p[0])) { case 0: ListFile(cur_dir_id); //显示当前目录下的文件; break; break; break; case 1: cur_dir_id= access_direct(p[1],cur_dir_id);//进入当前目录下的目录; case 2: creat_dir(p[1],cur_dir_id);//创建目录 case 3:del_dir(p[1],cur_dir_id);//删除目录; cin>>pt;fflush(stdin); cin>>p[1]; } break; break; if (fd!=1) { } break; break; break; if (fd!=-1) { } break; break; break; break; break; write_file(fd,cur_user_id,p[2]); close_file(fd,cur_user_id); cout< case 4:display_cur_dir(cur_dir_id);cout< case 6: creat_file(p[1],cur_dir_id,pt); case 7: del_file(p[1],cur_dir_id); case 8: fd=open_file(p[1],cur_dir_id,cur_user_id); case 9: help(); case 10:flag =false; case 11: change_usermod(cur_user_id,p[1],pt); case 12: ls_user(); default : cout< //主函数 int _tmain(int argc, _TCHAR* argv[]) { FILE *fp; bool flag=true; char LR; int cur_dir_id=-1; int cur_user_id = 3; init(); if ((fp=fopen(\,\))==NULL) { } else { } cout<<\欢迎来到UNIX—测试个人版文件系统\< cout<<\请先登陆系统\< <<\注册请输入R\< <<\< <<\< cout<<\< cout<<\载入虚拟磁盘失败!!!!!\< <<\输入格式话虚拟磁盘?\< cout<<\正在退出系统=====\< cin>>LR; if (LR=='l'||LR=='L') { cur_user_id= login(); if (cur_user_id!=-1) { } interface_struct(cur_user_id,cur_dir_id); } else if(LR=='r'||LR=='R') { reg(); } else if(LR=='q'||LR=='Q') { flag =false; cout<<\系统退出\< cout<<\您的选择不在服务范围,请重新输入\< } if ((fp = fopen(\,\))==NULL) { cout<<\无此文件\< } else write_disk(fp); } /* ================================================== || || || UNIX文件子系统模拟 || || || || 张培乐 || || || ================================================== */ #include\#include\#include\#include\#include\ #include #define MAX_USER_NUM 10 //最大用户数 #define MEMORY_NUM 512 //数据块数 #define DIRECTORY_NUM 256 //文件目录数 #define INODE_NUM 256 //i节点数 user* users[MAX_USER_NUM]; memory* memoryBlock[MEMORY_NUM]; //数据块 directory* direct[DIRECTORY_NUM]; //文件目录 superBlock* superblock; //超级块 iNode* inode[INODE_NUM]; //i节点 string group[]={\,\,\,\,\}; int defaultMask=2; //文件默认访问权限 bool ifEnough=false; //盘块数是否足够 //声明 void writeDisk(); bool arrayEqual(char *c1, char* c2); //帮助文档 void help() { cout<<\; cout<<\; cout<<\显示文件目录\\n\; cout<<\新权限> 改变文件权限\\n\; cout<<\新拥有者> 改变文件拥有者\\n\; cout<<\新组名> 改变文件所属组\\n\; cout<<\显示当前目录\\n\; cout<<\上一层目录\\n\; cout<<\目录名> 下一层目录\\n\; cout<<\目录名> 创建子目录\\n\; cout<<\目录名> 删除子目录\\n\; cout<<\文件名> 创建文件\\n\; #include