freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

操作系統(tǒng)原理課程設計文件管理系統(tǒng)(編輯修改稿)

2024-09-01 07:41 本頁面
 

【文章內容簡介】 i640 否k=root[i].i_num。strcmp(filename,root[i].file_name)==0 amp。amp。 (i_node[k].file_style==1)是 否 printf(沒有這個文件 printf(\t\t %s\t,root[i].file_name)。 或者這個文件不是正規(guī)文件\n)。printf(\t%d\t,i_node[k].file_style)。 printf(%d\t,i_node[k].file_length)。 printf(%s\n,root[i].dir_name)。 printf(\t\t文件占用的物理地址\n)。ji_node[k].file_lengthprintf(%d ,i_node[k].file_address[j])。 3)程序代碼:/* Hello, world */include include include include int physic[300]。 /* 文件地址緩沖區(qū) */int style=1。 /* 文件的類型 */char cur_dir[10]=c。 /* 當前目錄 */ struct mand{ char [10]。}cmd[12]。struct block{ int n。 /* 空閑的盤快的個數 */ int free[50]。 /* 存放空閑盤快的地址 */ int a。 /* 模擬盤快是否被占用 */}memory[200]。struct block_super{ int n。 /* 空閑的盤快的個數 */ int free[50]。 /* 存放進入棧中的空閑塊 */ int stack[50]。 /* 存放下一組空閑盤快的地址 */}super_block。struct node /* i結點信息 */{ int file_style。 /* i結點 文件類型 */ int file_length。 /* i結點 文件長度 */ int file_address[100]。 /* i結點 文件的物理地址 */} i_node[64]。struct dir /* 目錄項信息 */{ char file_name[10]。 /* 文件名 */ int i_num。 /* 文件的結點號 */ char dir_name[10]。 /* 文件所在的目錄 */} c[64]。void format() /* 格式化 */{int i,j,k。 =50。 for(i=0。i50。i++) /* 超級塊初始化 */ { [i]=i。 /* 存放進入棧中的空閑塊 */ [i]=50+i。 /* 存放下一組的盤塊 */ } for(i=0。i64。i++) /* i結點信息初始化 */ { for(j=0。j100。j++) { i_node[i].file_address[j]=1。/* 文件地址 */ } i_node[i].file_length=1。 /* 文件長度 */ i_node[i].file_style=1。 /* 文件類型 */ } for(i=0。i64。i++) /* 根目錄區(qū)信息初始化 */ { strcpy(c[i].file_name,)。 c[i].i_num=1。 strcpy(c[i].dir_name,)。 } for(i=0。i200。i++) /* 存儲空間初始化 */{ memory[i].n=0。 /* 必須有這個 */ memory[i].a=0。 for(j=0。j50。j++) { memory[i].free[j]=1。 }} for(i=0。i200。i++) /* 將空閑塊的信息用成組鏈接的方法寫進每組的最后一個塊中 */ { /* 存儲空間初始化 */ if((i+1)%50==0) { k=i+1。 for(j=0。j50。j++) { if(k200) { memory[i].free[j]=k。/* 下一組空閑地址 */ memory[i].n++。 /* 下一組空閑個數 注意在memory[i].n++之前要給其賦初值 */ k++。 } else { memory[i].free[j]=1。 } } memory[i].a=0。 /* 標記為沒有使用 */ continue。 /* 處理完用于存儲下一組盤塊信息的特殊盤塊后,跳過本次循環(huán) */ } for(j=0。j50。j++) { memory[i].free[j]=1。 } memory[i].n=0。 } printf(已經初始化完畢\n)。 printf(歡迎進入UNIX文件模擬系統(tǒng)?。。n\n)。}void write_file(FILE *fp) /* 將信息讀入系統(tǒng)文件中 */{ int i。 fp=fopen(system,wb)。 for(i=0。i200。i++) { fwrite(amp。memory[i],sizeof(struct block),1,fp)。 } fwrite(amp。super_block,sizeof(struct block_super),1,fp)。 for(i=0。i64。i++) { fwrite(amp。i_node[i],sizeof(struct node),1,fp)。 } for(i=0。i64。i++) { fwrite(amp。c[i],sizeof(struct dir),1,fp)。 } fclose(fp)。}void read_file(FILE *fp) /* 讀出系統(tǒng)文件的信息 */{ int i。 fp=fopen(system,rb)。 for(i=0。i200。i++) { fread(amp。memory[i],sizeof(struct block),1,fp)。 } fread(amp。super_block,sizeof(struct block_super),1,fp)。 for(i=0。i64。i++) { fread(amp。i_node[i],sizeof(struct node),1,fp)。 } for(i=0。i64。i++) { fread(amp。c[i],sizeof(struct dir),1,fp)。 } fclose(fp)。}void callback(int length) /* 回收磁盤空間 */{ int i,j,k,m,q=0。 for(i=length1。i=0。i) { k=physic[i]。 /* 需要提供要回收的文件的地址 */ m=。 /* 回收到棧中的哪個位置 */ if(==50) /* 注意 ==50時 m=1。的值 */ { /* ==50的時候棧滿了,要將這個棧中的所有地址信息寫進下一個地址中 */ for(j=0。j50。j++) { memory[k].free[j]=[j]。 } =0。 memory[k].n=50。 } memory[k].a=0。 if(m==1) { m=49。 /* 將下一個文件地址中的盤塊號回收到棧底中,這個地址中存放著剛才滿棧的地址的信息 */ } [m]=physic[i]。 /* 將下一個文件地址中的盤塊號回收到棧中 */ ++。 }}void allot(int length) /* 分配空間 */{ int i,j,k,m,p。 for(i=0。ilength。i++) { k=。 /* 超級塊中表示空閑塊的指針 */ m=[k]。 /* 棧中的相應盤塊的地址 */ p=[49]。 /* 棧中的最后一個盤塊指向的地址 */ if(m==1||memory[p].a==1) /* 檢測是否還有下一組盤塊 */ { printf(內存不足,不能夠分配空間\n)。 callback(length)。 break。 } if(==1) { memory[m].a=1。 /* 將最后一個盤塊分配掉 */ physic[i]=m。 =0。 for(j=0。jmemory[m].n。j++) /* 從最后一個盤塊中取出下一組盤塊號寫入棧中 */ { [j]=memory[m].free[j]。 ++。 } continue。
點擊復制文檔內容
外語相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1