简单文件系统的实现的实验报告(4)

2025-11-19

}

}

fatptr->id=END;

fatptr=fat1+bknum;

fatptr->id=END;

bkptr=(unsigned char *)(myvhard+bknum*BLOCKSIZE); while(tmplen

for(p=buf+off;p

*p=*txtmp; tmplen++; txtmp++; off++;

if(tmplen==len)

break;

for(i=0;i

buf[i]=0;

//if(off) //{ //} //else //{ //}

//for(i=0;i

buf[i]=0;

for(i=0;i

buf[i]=bkptr[i]; tmplen2++;

if(tmplen2==openfilelist[curfd].length)

break;

/*if((*p)==NULL) { }*/

break;

} free(buf);

if(openfilelist[fd].count>openfilelist[fd].length) { }

openfilelist[fd].fcbstate=1; return tmplen; } /**/ /* 原型声明: 功能描述: 输入: 输出:

函数功能实现算法描述: */

unsigned short findFree() {

unsigned short i; fat *fat1,*fatptr;

unsigned short findFree() 寻找下一个空闲盘块 无

返回空闲盘块的id

openfilelist[fd].length=openfilelist[fd].count; for(i=0;i

openfilelist[fd].count=rwptr+tmplen; if(off>=BLOCKSIZE) { }

off=off-BLOCKSIZE; bknum=fatptr->id; if(bknum==END) { }

fatptr=fat1+bknum;

bkptr=(unsigned char *)(myvhard+bknum*BLOCKSIZE);

bknum=fatptr->id=findFree(); if(bknum==END) return -1; fatptr=fat1+bknum; fatptr->id=END;

bkptr[i]=buf[i];

fat1=(fat *)(myvhard+BLOCKSIZE); for(i=6; i

printf(\ return END; } /* 原型声明: 功能描述: 输入: 输出:

函数功能实现算法描述: */

int findFreeO() { int i;

for(i=0;i

printf(\ return -1; } /**/ /* 原型声明: 功能描述: 输入:

fd

打开文件的id 返回实际写的长度

int my_write(int fd) 写文件函数

if(openfilelist[i].free==0) { }

return i;

int findFreeO() 寻找空闲文件表项 无

返回空闲文件表项的id

fatptr=fat1+i; if(fatptr->id == FREE) { }

return i;

输出:

函数功能实现算法描述: */

int my_write(int fd) {

int wstyle=0,wlen=0; fat *fat1,*fatptr; unsigned short bknum; unsigned char *bkptr; char text[MAX_TXT_SIZE]; fat1=(fat *)(myvhard+BLOCKSIZE); if(fd>MAX_OPEN_FILE) { }

while(wstyle<1||wstyle>3) {

printf(\ite style:\\n1.cut write\\t2.cover write\\t3.add write\\n\scanf(\getchar(); switch(wstyle) {

case 1://截断写

{ }

bknum=openfilelist[fd].first; fatptr=fat1+bknum; while(fatptr->id!=END) { }

fatptr->id=FREE;

bknum=openfilelist[fd].first; fatptr=fat1+bknum; fatptr->id=END; openfilelist[fd].length=0; openfilelist[fd].count=0; break;

bknum=fatptr->id; fatptr->id=FREE; fatptr=fat1+bknum;

printf(\return -1;

case 2://覆盖写

{

openfilelist[fd].count=0;

}

}

break;

case 3://追加写

{ }

bknum=openfilelist[fd].first; fatptr=fat1+bknum; openfilelist[fd].count=0; while(fatptr->id!=END) { }

bkptr=(unsigned char *)(myvhard+bknum*BLOCKSIZE); while(*bkptr !=0) { } break;

bkptr++;

openfilelist[fd].count++; bknum=fatptr->id; fatptr=fat1+bknum;

openfilelist[fd].count+=BLOCKSIZE;

default: }

break;

printf(\ gets(text);

if(do_write(fd,text,strlen(text),wstyle)>0) { } else { }

if(openfilelist[fd].count>openfilelist[fd].length) { }

openfilelist[fd].fcbstate=1; return wlen; }

openfilelist[fd].length=openfilelist[fd].count; return -1;

wlen+=strlen(text);


简单文件系统的实现的实验报告(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:丘区小二型水库除险加固工程施工组织设计 - 图文

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

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