} pu = pu->next; } } free(temp); printf(\文件%s关闭成功!\\n\ return ; } p= p->next; } puts(\要关闭的文件没有被打开!\\n\}
int read()//读文件命令 { char filename[20]; unsigned int length; AFD *p = pafd->next; puts(\请输入要读的文件名: \\n\ scanf(\ puts(\请输入要读的长度\\n\ scanf(\ while (p){ if(strcmp(filename, p->filename) == 0){ p->point += length; printf(\文件%s读取成功!\\n\ return 1; } p= p->next; } puts(\读取失败文件没有打开过!\\n\ return 0; }
int write()//写文件命令 { char filename[20]; unsigned int length; AFD *p = pafd->next; puts(\请输入要写的文件名: \\n\ scanf(\
while (p){ if(strcmp(filename, p->filename) == 0){ if(p->protect != 2){ printf(\文件%s不可写!\\n\ return 0; } puts(\请输入要写的长度\\n\ scanf(\ p->point += length; printf(\文件%s写入成功!\\n\ return 1; } p= p->next; } puts(\写入失败文件没有打开过!\\n\ return 0; }
void destroy()//释放内存 { MDF *pm = pmdf; while(pm){ pmdf = pmdf->next; free(pm); pm = pmdf; } AFD *pa = pafd; while(pa){ pafd = pafd->next; free(pa); pa = pafd; } UFD *pu = pufd; while(pu){ pufd = pufd ->next; free(pu); pu = pufd; } }
void saveUFD()//保存UFD文件 {
FILE *fp; UFD *p = pufd->next; if((fp = fopen(UserUFD, \ puts(\ exit(1); } while (p){ fprintf(fp, \ fprintf(fp, \ fprintf(fp, \ fprintf(fp, \ p=p->next; } fclose(fp); }
void exit()//推出系统 { AFD *pa = pafd->next; UFD *pu = pufd->next; while(pa){ if(pa->protect == 2){ while(pu){ if(strcmp(pa->filename, pu->filename) == 0){ pu->length = pa->point; break; } pu = pu->next; } } pa =pa->next; } saveUFD(); printUFD(); destroy(); }
void operate()//命令识别 { while(1){ char command[20]; char name[][8] = {\ puts(\请输入命令: \\n\ scanf(\ if(strcmp(command, name[0] ) == 0) create(); else if(strcmp(command, name[1] ) == 0) _delete(); else if(strcmp(command, name[2] ) == 0) open(); else if(strcmp(command, name[3] ) == 0) close(); else if(strcmp(command, name[4] ) == 0) read(); else if(strcmp(command, name[5] ) == 0) write(); else if(strcmp(command, name[6] ) == 0){ exit(); return; }else puts(\无效命令,请重新输入:\\n\ } }
void print() { puts(\文件系统\\n\ puts(\使用说明***:\\n\ puts(\本文件系统共有三个用户分别是user1 user2 user3\\n\\ 系统命令有create, delete, open, close,read, write,exit\\ \\nexit----------------------------------------退出系统\}
int main() { print(); initMDF(); checkuser(); initAFD();
}
operate();//命令识别
return 0;