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

正文內(nèi)容

操作系統(tǒng)課程設(shè)計(jì)-文件系統(tǒng)模擬畢業(yè)設(shè)計(jì)論文word格式(編輯修改稿)

2025-09-06 02:58 本頁面
 

【文章內(nèi)容簡介】 leexist(FCBTable ftable, char *name){ int i。 for (i=0。 iMAXFILE。 i++) { if (strcmp([i].Getfilename(), name) == 0) { return i。 } } return 1。}//復(fù)制函數(shù), 完全未復(fù)制返回0, 復(fù)制完成一部分返回1, 完全復(fù)制成功返回2//每向目的文件寫入一次數(shù)據(jù), 它占有的記錄塊就加1int Copyfile(char *destination, char **source, FCBTable amp。ftable, int isourcenum){ int ipd, ipd2, ips, i, j。 int idlocate, islocate。 //分別標(biāo)記目的文件和源文件在文件控制塊表中的位置 FILE *fp。 Filenoteblock notes, noted, noted2。 bool bover。 //標(biāo)記目的文件原來的記錄塊是否被覆蓋完 bool bfirsttime。 unsigned uflag, n。 if (destination == NULL || source == NULL) { cout沒有輸入目的文件或源文件, 請確定已輸入!endl。 return 0。 } if ((fp = fopen(PATH, rb+)) == NULL) { cout文件 PATH 不存在, 請確定創(chuàng)建了此文件!endl。 return 0。 } idlocate = Fileexist(ftable, destination)。 if (idlocate != 1)//目的文件已存在 { ipd = [idlocate].Getfp()。 //取得頭指針 [idlocate].Setnotenum(0)。 //設(shè)置占用記錄塊為0 bover = 0。 } else //不存在 { idlocate = Search_free_FCB(ftable)。 if (idlocate == 1) //無空閑文件控制塊 { cout 無空閑文件控制塊, 無法新建目的文件, 復(fù)制任務(wù)失敗!endl。 fclose(fp)。 return 0。 } if ((uflag, n) != 1)//有空閑記錄塊空間 { [idlocate].Setfilename(destination)。 //注冊文件名 [idlocate].SetID(idlocate)。 //設(shè)置文件ID bover = 1。 } else//無空閑空間 { cout無剩余空間可使用, 復(fù)制失敗!endl。 fclose(fp)。 return 0。 } } bfirsttime = 1。 [0] = 39。39。 [1] = 39。\039。 for (i=0。 i=isourcenum。 i++) { islocate = Fileexist(ftable, source[i])。 if ( islocate != 1)//該源文件存在 { ips = [islocate].Getfp()。//取得源文件頭指針 while (ips != 1) { //從源文件中讀出一塊數(shù)據(jù) fseek(fp, ips * sizeof(Filenoteblock), 0)。 fread(amp。notes, sizeof(Filenoteblock), 1, fp)。//目的文件原塊未覆蓋完,取出將被覆蓋的塊,以取得下一塊的指針 if (bover == 0){fseek(fp, ipd * sizeof(Filenoteblock), 0)。fread(amp。noted, sizeof(Filenoteblock), 1, fp)。}else //已覆蓋完 bover == 1{ if ((ipd = (uflag, n)) != 1)//有空閑空間 { ++。 (uflag, n)。 if (bfirsttime == 1) //第一次, 說明目的文件不存在 { [idlocate].Setfp(ipd)。 //設(shè)置頭指針 ++。 //已有文件數(shù)加1 } } else //沒有空閑空間, 不會(huì)是第一次就無空閑空間 { = 1。 fseek(fp, ipd2 * sizeof(Filenoteblock), 0)。 fwrite(amp。noted2, sizeof(Filenoteblock), 1, fp)。 [idlocate].Notenum_addone()。 //此文件占用記錄塊加1 fclose(fp)。 return 1。 }}strcpy(, )。 //賦給要寫入目的文件的塊for (j=0。 j10。 j++){ if ([j] == 39。\039。) { [j] = 39。39。 break。 }} if (bfirsttime == 0) //不是第一次 { //寫入目的文件 = ipd。 fseek(fp, ipd2 * sizeof(Filenoteblock), 0)。 fwrite(amp。noted2, sizeof(Filenoteblock), 1, fp)。 [idlocate].Notenum_addone()。 //此文件占用記錄塊加1 } //noted2, ipd2保存noted, ipd的前一個(gè)值 noted2 = noted。 ipd2 = ipd。 if (bover == 0 amp。amp。 == 1)//目的文件存在且原來的塊覆蓋完 { bover = 1。 } ips = 。 //修改源文件指針 //修改目的文件指針 if (bover == 0) //若目的文件原來的塊沒覆蓋完,取目的文件下一塊 { ipd = 。 } bfirsttime = 0。 }//while }//if }//for //至少有一個(gè)源文件存在時(shí),將最后一塊目的文件的記錄塊寫入目的文件 if (bfirsttime == 0 )//說明至少有一個(gè)源文件存在 { = 1。 fseek(fp, ipd2 * sizeof(Filenoteblock), 0)。 fwrite(amp。noted2, sizeof(Filenoteblock), 1, fp)。 [idlocate].Notenum_addone()。 //此文件占用記錄塊加1 } while (bover == 0 amp。amp。 ipd != 1) //釋放原來文件占用的未完的記錄塊 { fseek(fp, ipd * sizeof(Filenoteblock), 0)。 fread(amp。noted, sizeof(Filenoteblock), 1, fp)。 (ipd)。 。 ipd = 。 } fclose(fp)。 return 2。}int SaveFCBTable(FCBTable ftable) //保存文件控制塊表于PATH2{ FILE *fp。 if ((fp = fopen(PATH, rb+)) == NULL) { if ((fp = fopen(PATH, wb)) == NULL) { cout不能創(chuàng)建文件 PATH 系統(tǒng)不能正常工作!endl。return 0。 } fclose(fp)。 if ((fp = fopen(PATH, rb+)) == NULL) { coutSaveFCBTable()函數(shù) 不能打開文件 PATH !endl。 return 0。 } } fseek(fp, 0 * sizeof(FCBTable), 0)。 fwrite(amp。ftable, sizeof(FCBTable), 1, fp)。 fclose(fp)。 return 1。}int Deletefile(FCBTable amp。ftable, char *name)//刪除name指示的文件{int ip, ilocate。FILE *fp。Filenoteblock note。char c。if ((fp = fopen(PATH, rb)) == NULL){cout不存在文件 PATH 請確定創(chuàng)建了此文件!endl。return 0。} ilocate = Fileexist(ftable, name)。if (ilocate != 1)//文件存在{cout確定刪除文件 name (除y或Y外無不刪除文件)? 。cinc。if (c != 39。y39。 amp。amp。 c != 39。Y39。){return 1。}ip = [ilocate].Getfp()。while (ip != 1){ fseek(fp, ip * sizeof(Filenoteblock), 0)。 fread(amp。note, sizeof(Filenoteblock), 1, fp)。 (ip)。 。 //已占用的記錄塊數(shù)減1 ip = 。}[ilocate].Setfilename(***)。[ilocate].SetID(1)。[ilocate].Setfp(1)。[ilocate].Setnotenum(0)。 //此文件占有記錄塊置0 。 //已有文件數(shù)減1}else{cout無文件 name !endl。return 0。}
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1