操作系统4(4)

2020-02-20 14:04

}

if(i>LIST_SIZE) { }

printf(\内存不足\\n\return 0;

strcpy(dir->list[i].fname,name); strcpy(dir->list[i].exname,exname); dir->list[i].length=length; flag=1; j=DATABEG+1;

while(1){//不断循环 }

FAT->id[t]=-1;

//

FAT->id[0]=FAT->id[0]-1;

if(MAP->maplist[j]!=1) {

} j++;

if(!templength--) //当length全部被分配完截止

break;

//上一块的地址

//第一次分配是的首地址

//给文件的首块

if(flag) { }

dir->list[i].fnum=j;

MAP->maplist[j]=1; if(!flag) { } t=j; flag=0;

FAT->id[t]=j;

//MAP减少

//

FAT->id[0]=FAT->id[0]-1;

} /**

printf(\已经成功创建文件%s \\n\return 1;

复制文件 */

int cp(char *str,char *newname) {

l=strlen(str);

//取文件名 for(i=0;i

//去扩展名 j=0; i++; i++;//除去点 k=l-i;

for(j=0;j

if(str[i]=='\\0') break;

name[i]=str[i]; if(str[i+1]=='.')

break;

int i,j,k,l,length;

char name[8]={0}; //文件名称 char exname[3]={0}; //文件扩展名

struct DIR *dir;

exname[j]=str[i];

} /*

i++; }

if(strcmp(newname,\{ }

printf(\文件名不能为空\\n\return 0;

dir=(struct DIR *)(file+currentdir*BLOCK_SIZE); for(i=2;i

if(i>LIST_SIZE) { }

length=dir->list[i].length ; create(newname,length);

printf(\找不到指定的文件%s\\n\return 0;

break;

//子文件

if(strcmp(dir->list[i].fname,name)==0&&strcmp(dir->list[i].exname,exname)==0)

*删除文件 */

int delfile(char *str) {

int i,j,l,k;

int blocknum; //要删除的首块地址 int temp;

char name[8]={0}; //文件名称 char exname[3]={0}; //文件扩展名

char c='a'; struct DIR *dir; struct fatid *FAT; struct map *MAP;

l=strlen(str); //取文件名 for(i=0;i

//去扩展名 j=0; i++; i++;//除去点 k=l-i;

for(j=0;j

if(strcmp(str,\{ }

dir=(struct DIR *)(file+(currentdir)*BLOCK_SIZE); MAP=(struct map *)(file+(FATNUM+1)*BLOCK_SIZE); FAT=(struct fatid *)(file+BLOCK_SIZE);

printf(\文件名不能为空\\n\return 0;

if(str[i]=='\\0') i++; }

break;

exname[j]=str[i];

name[i]=str[i]; if(str[i+1]=='.')

break;

for(i=2;i

}

if(i>LIST_SIZE) { } while(1) { }

if(c=='n'||c=='N') return 0;

blocknum=dir->list[i].fnum; dir->list[i].fnum=0;

//把目录项还原

strcpy(dir->list[i].exname,\strcpy(dir->list[i].fname,\dir->list[i].length=0;

printf(\是否确认?(Y/N)\cin>>c;

if((c=='y'||c=='Y')||(c=='n'||c=='N'))

break;

printf(\找不到%s 文件\\n\return 0;

if((strcmp(dir->list[i].fname,name)==0)&&(strcmp(dir->list[i].exname,exname)==0))

break;

//处理FAT AND MAP 表

while(FAT->id[blocknum]!=-1) { }

temp=FAT->id[blocknum];; FAT->id[blocknum]=0; FAT->id[0]=FAT->id[0]+1; MAP->maplist[blocknum]=0; blocknum=temp;


操作系统4(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:基于PIC16F887单片机的数字钟完整c程序代码

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

马上注册会员

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