基于Linux的模拟文件系统的设计与实现(5)

2019-03-28 15:36

if(cur_content->fileHead==NULL) cur_content->fileHead=add; else {

last=cur_content->fileHead; while(last->next!=NULL) last=last->next; last->next=add; }

cur_content->f_num++;

//fulfill the new folder name char name[10]; File *check; char buffer[2];

fgets(buffer,2,stdin);

file_r:printf(\create a new File:\\nfile name(9,only alphabet and number can be used):\\n\

scanf(\

check=cur_content->fileHead; while(check!=add) {

if(strcmp(name,check->name)==0) {

printf(\goto file_r; }

check=check->next; }

//check legality of the name int i=0;

for(;i<=9;i++) {

if(name[i]>=97&&name[i]<=122)//lower continue; else

if(name[i]>=48&&name[i]<=57)//num continue;

20

else

if(name[i]>=65&&name[i]<=90)//upper continue; else

if(name[i]=='\\0') break; else {

printf(\goto file_r; } }

strcpy(add->name,name); char fullName[20]={\strcat(fullName,name);

add->fp=fopen(fullName,\if(add->fp==NULL) {

printf(\goto file_r; }

fclose(add->fp); printf(\return; }

//step2

void FileRead() {

if(cur_con->fileHead==NULL) {

printf(\return; }

printf(\File *current;

char name[10];

printf(\

21

file_r:printf(\scanf(\

if(name[0]=='#') return;

//seek file name

current=cur_con->fileHead; while(current!=NULL) {

if(!strcmp(current->name,name)) break; else

current=current->next; }

if(current==NULL) {

printf(\goto file_r; }

char fullName[20]={\strcat(fullName,name);

printf(\current->fp=fopen(fullName,\char ch;

while(ch!=EOF) {

putchar(ch=getc(current->fp)); }

printf(\fclose(current->fp);

return; }

//step2

void FileWrite() {

if(cur_con->fileHead==NULL) {

printf(\return;

22

}

printf(\File *current;

char name[10];

printf(\file_r:printf(\scanf(\

if(name[0]=='#') return;

//seek file name

current=cur_con->fileHead; while(current!=NULL) {

if(!strcmp(current->name,name)) break; else

current=current->next; }

if(current==NULL) {

printf(\goto file_r; }

char fullName[20]={\strcat(fullName,name);

printf(\details:(tpye in \\\current->fp=fopen(fullName,\char ch;

ch=getchar(); while(ch!='#') {

putc(ch,current->fp); ch=getchar(); }

fclose(current->fp);

printf(\return;

23

}

//step2

void FileDelete() {

if(cur_con->fileHead==NULL) {

printf(\return; }

File *front,*current;

char name[10];

printf(\file_d:printf(\scanf(\

if(name[0]=='#') return;

//seek file name

current=cur_con->fileHead; while(current!=NULL) {

if(!strcmp(current->name,name)) break; else

current=current->next; }

if(current==NULL) {

printf(\goto file_d; }

//execute delete operation front=cur_con->fileHead; if(front==current) //if curren is the head file {

cur_con->fileHead=current->next;

24


基于Linux的模拟文件系统的设计与实现(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018年高考数学一轮复习第十一章计数原理、概率、随机变量及其分

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: