正文内容

操作系统课程设计计算机07级-阅读页

2024-07-26 16:50本页面
  

【正文】 lag=0。 f=fcb。 fcb=fcbnext。 while(p) {pfileid=1。 } return flag。 f=fnext。 p=fnext。*/ while(p) { p=pnext。 } free(f)。 } p=f。 } if(flag==0) { printf(zhe file has not open!\n39。 return flag。}//代码10int FREAD(char *str, int n, int fileid)/*文件块读*/ { int m,i,j=0,k,l,len。 struct FCBBlock *p。 while(p) {if(pfileid==fileid) break。 } len=fil[pfdtblockindex].filelen。/*文件读写指针:该块在文件的相对位置*/ printf(now file pos is:)。 printf(is writing as now file pos?(y/n):)。 if(a[0]==39。||a[0]==39。) {printf(input pos:)。l)。 else break。 printf(input read size,again:)。n)。 } str=(char *)malloc(fil[pfdtblockindex].filelen+1)。 k=fil[pfdtblockindex].firstblockaddr。 fread(str,BlockSize,1,fp)。 for(i=1。i++) {fseek(fp,fat1[k1]*BlockSize,0)。str[i*BlockSize],BlockSize,1,fp)。 } fseek(fp,(k1)*BlockSize,0)。str[i*BlockSize],leni*BlockSize,1,fp)。 fread(str,len,1,fp)。\039。str[l]。 printf(%s\n,str)。 }//代码11void FWRITE(char *ptr, int n, int fileid){ char a[3]。 int m,i=0,j,k=0,num,flag=0,flag1=0,b。 p=fcb。 else p=pnext。 printf(now file pos is:)。 printf(is writing as now file pos?(y/n):)。 if(a[0]==39。||a[0]==39。) {printf(input pos:)。l)。 else break。 if(l==0) j=1。 for(i=1。i++) num=fat1[num]。 flag=1。 num=fat1[num1]。ptr[0],j*BlockSizel,1,fp)。 } else {fwrite(amp。} } else { m=j*BlockSizel+(k1)*BlockSize。 fwrite(amp。 } k++。 } while(((n+l)(i1)*BlockSize)1)。}//代码12int FEOF(int fileid){ int flag。 p=fcb。 } if(pfileposfil[pfdtblockindex].filelen) return 0。}//代码13long FGETPOS(int fileid){struct FCBBlock *p。 while(p) {if(pfileid==fileid) return (pfilepos)。 } printf(get faile!\n)。}//代码14int FSETPOS(int fileid, long offset){struct FCBBlock *p。 while(p) { if(pfileid==fileid) { while(offsetfil[pfdtblockindex].filelen||offset0) {printf(set error!zhe pos file length\n)。 scanf(%d,offset)。 return 1。 } printf(get faile!\n)。}//代码15void DISPLAY(){ printf(\t\t please input you order:\n)。 printf(\t\t 显示目录:list\n)。 printf(\t\t 打开文件:open\n)。 printf(\t\t 文件块读:read\n)。 printf(\t\t 退出:exit\n)。 struct FCBBlock *p。 fp=OPENSYS(filename)。 scanf(%s,cmd)。 scanf(%s,fname)。 if(flag==1) printf(zhe file create successfully!\n)。 else if(!strcmp(cmd,del)) {scanf(%s,fname)。 if(flag==1) printf(delete zhe file successfully!\n)。 flag=FOPEN(fname)。 } else if(!strcmp(cmd,close)) {scanf(%s,fname)。 if(flag==1) printf(zhe file close successfully!\n)。 p=fcb。 while(p) { if(!strcmp(fil[pfdtblockindex].filename,fname)) {printf(inpput size:)。len)。 flag=FREAD(str,len,id)。 } p=pnext。 } else if(!strcmp(cmd,write)) {scanf(%s,fname)。 flag1=0。 do { scanf(%d,amp。 if(lenfil[pfdtblockindex].filelen) printf(size too larger!\ninput again:)。 id=pfileid。 scanf(%s,ptr)。 flag1=1。 } if(flag1==0) printf(zhe file has not open,please open first!\n)。 break。 }}//代码17int main(void){ struct ReserveBlock sys。 int *fat。 fcb=NULL。sys,255,BlockSize)。s Block Num(5~32767):)。())。 =(BlockSize/sizeof(int))+ ((%(BlockSize/sizeof(int)))?1:0)。 memset(fat,255,BlockSize*)。 =RootSize。 for (i=0。i++) fat[i]=1。fillchar,0,BlockSize)。 fwrite(amp。 for (i=0。i++) fwrite(fat+i*BlockSize/sizeof(int),1,BlockSize,fp)。 for(i=0。i++) fwrite(amp。 fclose(fp)。 test(filename)。}
点击复制文档内容
语文相关推荐
文库吧 www.wenkub.com
备案图鄂ICP备17016276号-1