77范文网 - 专业文章范例文档资料分享平台

模拟实现单级目录的FAT文件系统(4)

来源:网络收集 时间:2020-04-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

{ if(flag==0)

printf(\文件名 大小 创建日期\\n\ flag=1;

printf(\ fil[i].filelen,fil[i].year,fil[i].month,fil[i].day); } }}

int FCREATE(char *filename) /*创建文件*/

{

int i,flag=0,j,k=0,flag1=0,flag2=0,a; int n,m;

a=strlen(filename); if(a>10) return 1;

for(i=0;i

for(i=(sys1.fatblocknum+sys1.resblocknum+sys1.rootblocknum);i

flag++; if(flag==0)

{ printf(\磁盘已满\统计结果为0,则磁盘已满*/ return 0; }

printf(\空闲块数:%d\\n\ printf(\请输入文件长度:\

for(j=0;j<32;j++)

if(fil[j].firstblockaddr==0)

break; while(1)

{scanf(\输入目录项中文件的长度*/ n=(dir[j].filelen/BlockSize)+(dir[j].filelen%BlockSize?1:0); if(n<0||n>flag)/*文件长度小于0或大于空闲的空间 */ {printf(\文件太长!\\n\ printf(\请重新输入:\ } else break; }

for(i=(sys1.fatblocknum+sys1.resblocknum+sys1.rootblocknum);i

/*分配一块空间*/ if(fat1[i]==0) { fat1[i]=-1; break;}

dir[j].firstblockaddr=i+1;

strcpy(dir[j].filename,filename); /*输入文件相关的信息*/ dir[j].filename[a]='\\0'; printf(\输入年份:\ scanf(\ printf(\输入月份:\ scanf(\ printf(\输入日期:\ scanf(\ return (0); }

int FDELETE(char *filename) /*删除文件*/

{int i,j,k,n,flag=1; struct FCBBlock *p;

p=fcb;

while(p) /*查看是否关闭了文件*/ { if(strcmp(filename,fil[p->fdtblockindex].filename)==0) return 1; else

p=p->next; }

for(i=0;i

if(strcmp(filename,fil[i].filename)==0) { flag=1; break; } if(flag==0) return 2;

j=fil[i].firstblockaddr; while(1) {

k=fat1[j-1]; /*将要删除的文件的块用0填充*/ fseek(fp,(j-1)*BlockSize,0); fwrite(&fillchar,1,BlockSize,fp); fat1[j-1]=0; if(k==-1) break; else j=k; }

memset(&fil[i],0,DirSize); /*将要删除的文件的目录用0填充*/ return 0; }

int FOPEN(char *filename) /*打开文件 */ {

int i,j=0,k,flag=0,id; struct FCBBlock *p,*q,*r; p=fcb;

for(i=0;i

if(strcmp(filename,fil[i].filename)==0) { flag=1; break; } if(flag==0) return 0; if(fcb==NULL)

{ fcb=(struct FCBBlock *)malloc(sizeof(struct FCBBlock)); fcb->fileid=j+1; fcb->filepos=0; fcb->next=NULL; fcb->fdtblockindex=i; id=j+1; return id; } else { while(fcb) {j++;

if(strcmp(filename,fil[fcb->fdtblockindex].filename)==0) 打开*/

return 0; q=fcb; fcb=fcb->next; }

/*判断是否已经

r=(struct FCBBlock *)malloc(sizeof(struct FCBBlock)); /*创建fcb*/ r->fileid=j+1; r->filepos=0; r->next=NULL; r->fdtblockindex=i; q->next=r; } id=j+1; fcb=p;

return id; /*返回打开的文件的标识fileid*/ }

long FGETLEN(char *filename) /*获取文件的长度*/ { int i;

for(i=0;i

return -1; }

int FCLOSE(char *filename)/*关闭文件 */ { int flag=0;

struct FCBBlock *f,*p; f=fcb;

if(strcmp(filename,fil[fcb->fdtblockindex].filename)==0) { flag=1; fcb=fcb->next; p=fcb; while(p) {p->fileid-=1;

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库模拟实现单级目录的FAT文件系统(4)在线全文阅读。

模拟实现单级目录的FAT文件系统(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/1005815.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: