版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
課程設(shè)計(jì)(上機(jī)試驗(yàn))匯報(bào)課程名稱(chēng):操作系統(tǒng)上機(jī)實(shí)習(xí)學(xué)生姓名:學(xué)號(hào):所在學(xué)院:專(zhuān)業(yè):指導(dǎo)教師:20XX年月曰
課程設(shè)計(jì)(上機(jī)試驗(yàn))匯報(bào)填寫(xiě)闡明1.本匯報(bào)作為指導(dǎo)教師對(duì)學(xué)生課程設(shè)計(jì)(上機(jī)試驗(yàn))評(píng)分的根據(jù)材料之一。此匯報(bào)應(yīng)在指導(dǎo)教師指導(dǎo)下,由學(xué)生在課程設(shè)計(jì)(上機(jī)試驗(yàn))結(jié)束時(shí)完畢,以班為單位收齊後準(zhǔn)時(shí)交給指導(dǎo)教師批閱;2.本匯報(bào)內(nèi)容必須用黑墨水筆工整書(shū)寫(xiě)或按信息學(xué)院統(tǒng)一設(shè)計(jì)的電子文檔原則格式(可從信息學(xué)院網(wǎng)頁(yè)上下載)打?。ㄐ?號(hào)宋體,1.5倍行距),嚴(yán)禁打印在其他紙上後剪貼;3.本匯報(bào)中的“設(shè)計(jì)闡明書(shū)”應(yīng)按論文的格式成文,并直接書(shū)寫(xiě)(或打?。┰诒緟R報(bào)“設(shè)計(jì)闡明書(shū)”欄目?jī)?nèi)。其內(nèi)容可以結(jié)合設(shè)計(jì)題目的內(nèi)容和規(guī)定,根據(jù)自已在本課程設(shè)計(jì)(上機(jī)試驗(yàn))階段所完畢的工作,闡明自已所采用的設(shè)計(jì)思想和措施(硬件的設(shè)計(jì)及其電原理圖分析簡(jiǎn)介,和/或軟件的算法和數(shù)據(jù)構(gòu)造及其重要模塊簡(jiǎn)介、程序在測(cè)試用例下的測(cè)試運(yùn)行成果等)、完畢本課程設(shè)計(jì)的心得體會(huì)、設(shè)計(jì)中的局限性及改善設(shè)計(jì)的設(shè)想或提議等。闡明書(shū)的篇幅應(yīng)不少于字。4.對(duì)硬件類(lèi)課程設(shè)計(jì),應(yīng)繪制或打印硬件設(shè)計(jì)圖紙或試驗(yàn)原理圖,作為設(shè)計(jì)匯報(bào)的附件。5.軟件類(lèi)課程設(shè)計(jì)(上機(jī)試驗(yàn))的軟件文檔(含軟件清單和程序運(yùn)行的有關(guān)成果)可以單獨(dú)打印成冊(cè)或上傳到指導(dǎo)教師指定計(jì)算機(jī),作為課程設(shè)計(jì)匯報(bào)的附件。課程設(shè)計(jì)(上機(jī)試驗(yàn))匯報(bào)的附件是指導(dǎo)教師對(duì)學(xué)生課程設(shè)計(jì)(上機(jī)試驗(yàn))評(píng)分的另一種根據(jù)。
課程設(shè)計(jì)(上機(jī)實(shí)習(xí))報(bào)告課程設(shè)計(jì)(上機(jī)試驗(yàn))題目:文獻(xiàn)系統(tǒng)的模擬設(shè)計(jì)4.1修改md命令(去掉屬性前面的|)4.2修改Help命令或命令行預(yù)處理程序(1.修改help命令的顯示方式和顯示內(nèi)容)4.3新增fc命令,實(shí)現(xiàn)兩個(gè)文獻(xiàn)的比較4.4新增replace命令,實(shí)現(xiàn)文獻(xiàn)取代4.6新增batch命令,實(shí)現(xiàn)批處理4.7修改close、type等命令,容許不帶文獻(xiàn)名參數(shù)4.8完善copy命令(1.改正某些缺陷)4.10修改del、copy等命令,使其可以使用統(tǒng)配符*目的與任務(wù):理解操作系統(tǒng)文獻(xiàn)系統(tǒng)的某些工作原理,學(xué)習(xí)文獻(xiàn)操作命令和目錄操作命令的設(shè)計(jì)措施。通過(guò)試驗(yàn),使學(xué)生加深對(duì)操作系統(tǒng)文獻(xiàn)系統(tǒng)某些問(wèn)題的理解,歸納學(xué)習(xí)措施和思索措施,做到理論聯(lián)絡(luò)實(shí)際。培養(yǎng)學(xué)生分析問(wèn)題、處理問(wèn)題的能力,提高學(xué)生軟件設(shè)計(jì)能力和邏輯思維能力。內(nèi)容和規(guī)定:設(shè)計(jì)實(shí)現(xiàn)一種簡(jiǎn)樸的文獻(xiàn)系統(tǒng),包括目錄文獻(xiàn)、一般文獻(xiàn),以及某些文獻(xiàn)操作命令和目錄操作命令(例如可以模仿DOS的有關(guān)命令)。詳細(xì)規(guī)定如下列2.2和2.3。2.2初始目錄構(gòu)造程序初始化時(shí)構(gòu)造如圖1所示的目錄構(gòu)造。binusrbinusrdevuserlibbinlisunmaauto圖1初始目錄樹(shù)目錄文獻(xiàn)一般文獻(xiàn)【圖例闡明】根目錄2.3系統(tǒng)操作命令簡(jiǎn)介在本文獻(xiàn)系統(tǒng)中,規(guī)定可以實(shí)現(xiàn)如下操作:變化目前目錄:cd[<目錄名>]。目前目錄(工作目錄)轉(zhuǎn)移到指定目錄下。指定目錄不存在時(shí),給出錯(cuò)誤信息。若命令中無(wú)目錄名,則顯示目前目錄途徑。創(chuàng)立文獻(xiàn):create<文獻(xiàn)名>[<屬性>]。創(chuàng)立一種指定名字的新文獻(xiàn),即在目錄中增長(zhǎng)一目錄項(xiàng),不考慮文獻(xiàn)的內(nèi)容。對(duì)于重名文獻(xiàn)給出錯(cuò)誤信息。刪除文獻(xiàn):del<文獻(xiàn)名>。刪除指定的文獻(xiàn),即清除其目錄項(xiàng)和回收其所占用磁盤(pán)空間。對(duì)于只讀文獻(xiàn),刪除前應(yīng)問(wèn)詢(xún)顧客,得到同意後方能刪除。當(dāng)指定文獻(xiàn)正在使用時(shí),顯示“文獻(xiàn)正在使用,不能刪除”的信息,當(dāng)指定文獻(xiàn)不存在時(shí)給出錯(cuò)誤信息。顯示目錄:dir[<目錄名>[<屬性>]]。顯示“目錄名”指定的目錄中文獻(xiàn)名和第一級(jí)子目錄名。若指定目錄不存在,則給出錯(cuò)誤信息。創(chuàng)立目錄:md<目錄名>。在指定途徑下創(chuàng)立指定目錄,若沒(méi)有指定途徑,則在目前目錄下創(chuàng)立指定目錄。對(duì)于重名目錄給出錯(cuò)誤信息。刪除目錄:rd目錄名。若指定目錄為空,則刪除之,否則,給出“非空目錄不能刪除”的提醒。不能刪除目前目錄。打開(kāi)文獻(xiàn):open<文獻(xiàn)名>。若指定文獻(xiàn)存在且尚未打開(kāi),則打開(kāi)之,并在顧客打開(kāi)文獻(xiàn)表(UOF)中登記該文獻(xiàn)的有關(guān)信息。若指定文獻(xiàn)已經(jīng)打開(kāi),則顯示“文獻(xiàn)已打開(kāi)”的信息;若指定文獻(xiàn)不存在,則給出錯(cuò)誤信息。只讀文獻(xiàn)打開(kāi)後只能讀不能寫(xiě)。寫(xiě)文獻(xiàn):write<文獻(xiàn)名>[<位置>][insert]。在文獻(xiàn)的指定位置處寫(xiě)入新內(nèi)容。讀文獻(xiàn):read<文獻(xiàn)名>[<位置m>[<字節(jié)數(shù)n>]]。從已打開(kāi)文獻(xiàn)中讀指定內(nèi)容并顯示。關(guān)閉文獻(xiàn):close<文獻(xiàn)名>。若指定文獻(xiàn)已打開(kāi),則關(guān)閉之,即從UOF中刪除該文獻(xiàn)對(duì)應(yīng)的表項(xiàng)。若文獻(xiàn)未打開(kāi)或文獻(xiàn)不存在,分別給出有關(guān)信息。顯示文獻(xiàn)內(nèi)容:type<文獻(xiàn)名>。顯示指定文獻(xiàn)的內(nèi)容。若指定文獻(xiàn)不存在,則給出錯(cuò)誤信息。復(fù)制文獻(xiàn):copy<源文獻(xiàn)名><目的文獻(xiàn)名>。命令功能:為目的文獻(xiàn)建立目錄項(xiàng),分派新的盤(pán)塊,并將源文獻(xiàn)的內(nèi)容復(fù)制到目的文獻(xiàn)中。文獻(xiàn)更名:ren<原文獻(xiàn)名><新文獻(xiàn)名>。將指定文獻(xiàn)的名字改為“新文獻(xiàn)名”。若原文獻(xiàn)不存在,給出錯(cuò)誤信息。若原文獻(xiàn)存在,但正在使用,也不能更名,同樣顯示出錯(cuò)信息。應(yīng)檢查新文獻(xiàn)名與否符合命名規(guī)則以及與否存在重名問(wèn)題。顯示、修改文獻(xiàn)或目錄屬性:attrib<文獻(xiàn)名>[<文獻(xiàn)屬性>]。若命令中無(wú)“文獻(xiàn)屬性”參數(shù),則顯示指定文獻(xiàn)的屬性;若命令中有“文獻(xiàn)屬性”參數(shù),則修改指定文獻(xiàn)的屬性。此命令對(duì)目錄名同樣合用。2.4幾點(diǎn)闡明命令中的目錄名和文獻(xiàn)名可以統(tǒng)稱(chēng)為途徑名,支持絕對(duì)途徑(又稱(chēng)全途徑)和相對(duì)途徑;途徑名是由目錄構(gòu)造中各級(jí)目錄文獻(xiàn)名和一般文獻(xiàn)名(必然是最終一種名)用分隔符“/”連接而成的字符串構(gòu)成。其中以字符“/”開(kāi)始的途徑名是絕對(duì)途徑,表達(dá)從根目錄開(kāi)始;不是以字符“/”開(kāi)始的途徑名是相對(duì)途徑,表達(dá)從目前目錄開(kāi)始。目前目錄又稱(chēng)工作目錄。本系統(tǒng)規(guī)定,名字(文獻(xiàn)名或目錄名)的命名規(guī)則如下:(1)名字長(zhǎng)度不能超過(guò)FILENAME_LEN-1個(gè)字節(jié),即10個(gè)字符(符號(hào)常數(shù)FILENAME_LEN為11)。容許輸入的名字超過(guò)10個(gè)字符,但只有前10個(gè)字符有效;(2)名字一般由字母(辨別大小寫(xiě))、數(shù)字、下劃線等構(gòu)成,名字容許是中文;(3)名字不能包括如下16個(gè)字符之一: "*+,/:;<=>?[\]|space(空格)(4)名字中容許包括字符“.”,但它不能是名字的第一種字符,故“.”、“.abc”、“..”和“..abc”等等都是不合法的名字?!?.”代表父目錄是例外,但它并非由顧客通過(guò)鍵盤(pán)輸入的名字,故不需要符合名字的命名規(guī)則。本系統(tǒng)中,命令名(如dir)和命令參數(shù)中的有關(guān)關(guān)鍵字(如append或app、insert或ins等)不辨別大小寫(xiě)。文獻(xiàn)名和目錄名中的字母是辨別大小寫(xiě)的。命令格式中,“<...>”代表某個(gè)字符串,“[]”中內(nèi)容為可選項(xiàng)。課程設(shè)計(jì)(上機(jī)實(shí)習(xí))報(bào)告設(shè)計(jì)說(shuō)明書(shū)(闡明書(shū)的撰寫(xiě)規(guī)定請(qǐng)參看封裏的“匯報(bào)填寫(xiě)闡明3”。篇幅不夠可附頁(yè))//函數(shù)原型闡明(添加的函數(shù)名)intFcComd(int);//文獻(xiàn)比較intReplaceComd(int);//文獻(xiàn)替代intBatchComd(int);//文本文獻(xiàn)的批處理intdeletefile(char*,FCB*,short);//刪除文獻(xiàn)intFindFileFCB(int&,int,char,FCB*&); //查找文獻(xiàn)的FCBintshowattrib(FCB*);//屬性intCopy(int); //復(fù)制//執(zhí)行命令中添加的內(nèi)容voidExecComd(intk){ intcid; //命令標(biāo)識(shí) //操作命令表 charCmdTab[][COMMAND_LEN]={"create","open","write","read","close", "del","dir","cd","md","rd","ren","copy","type","help","attrib", "uof","closeall","block","rewind","fseek","fat","check","exit", "undel","Prompt","udtab","fc","replace","batch"};…………………..case26:FcComd(k);break;//fc命令,實(shí)現(xiàn)兩個(gè)文獻(xiàn)的比較 case27:ReplaceComd(k);break;//replace命令,實(shí)現(xiàn)文獻(xiàn)的取代 case28:BatchComd(k);break;//batch命令,實(shí)現(xiàn)從文獻(xiàn)讀取并執(zhí)行…………………..}流程圖:4.1修改md命令
課程設(shè)計(jì)(上機(jī)實(shí)習(xí))報(bào)告開(kāi)始開(kāi)始命令格式對(duì)的嗎?在指定目錄中查找空目錄項(xiàng)(若已無(wú)空目錄項(xiàng),則為其分派新的盤(pán)塊),找到後為新目錄登記目錄項(xiàng)。為新目錄分派1盤(pán)塊,用于登記該目錄的第一種目錄項(xiàng),即“..”目錄項(xiàng)。查詢(xún)文獻(xiàn)的RHS屬性,并記錄、存儲(chǔ)。返回是否md命令函數(shù)流程圖顯示有關(guān)的錯(cuò)誤信息指定途徑對(duì)的嗎?是否新目錄有重名嗎?是否設(shè)計(jì)思想:程序的指令格式為mduser|rh,需改為mduserrh,因此可在mduser|rh程序中實(shí)現(xiàn)修改功能要實(shí)現(xiàn)此功能,只需要獲取目錄的屬性時(shí),刪除判斷“|”操作符的過(guò)程即可。詳細(xì)措施:在intMdComd(intk)函數(shù)中刪除*if(k==2){i=GetAttrib(comd[2],attrib);if(i<0)returni;}即可實(shí)現(xiàn)所需功能。修改後的操作措施:輸入mduserrh即可對(duì)的執(zhí)行。4.2修改help命令的顯示方式和顯示內(nèi)容設(shè)計(jì)思想:運(yùn)用switch(n)case…語(yǔ)句實(shí)現(xiàn)選擇只查看需理解的操作命令。詳細(xì)措施:首先運(yùn)用cout語(yǔ)句輸出改操作系統(tǒng)所擁有的命令,并用數(shù)字標(biāo)明,供顧客選擇,再運(yùn)用switch(n)case…語(yǔ)句實(shí)現(xiàn)詳細(xì)內(nèi)容的簡(jiǎn)介。程序的大體體現(xiàn)如下:intn;cout<<””<<endl;//輸入所擁有的操作命令switch(n){case…//詳細(xì)顯示命令的內(nèi)容}修改後的操作:首先輸入help命令,則會(huì)顯示多種命令供選擇,選擇後即顯示詳細(xì)的命令內(nèi)容。命令對(duì)的?命令對(duì)的?開(kāi)始顯示help命令可選內(nèi)容輸入1~35或quit顯示所需help信息返回是否報(bào)錯(cuò)否是Help命令函數(shù)流程圖4.3新增fc命令,實(shí)現(xiàn)兩個(gè)文獻(xiàn)的比較設(shè)計(jì)思想:首先運(yùn)用ProcessPath()函數(shù)和FindFCB()函數(shù)查找文獻(xiàn)的目錄所在首塊號(hào)和文獻(xiàn)所在首塊號(hào),判斷其存在性,并記錄其全途徑名。假如需要比較的文獻(xiàn)都存在的話則進(jìn)行比較。開(kāi)始程序流程圖如下:開(kāi)始否命令格式對(duì)的嗎?否命令格式對(duì)的嗎?是是調(diào)用ProcessPath()查找兩文獻(xiàn)的指定途徑調(diào)用ProcessPath()查找兩文獻(xiàn)的指定途徑指定途徑對(duì)的嗎?否指定途徑對(duì)的嗎?否是是調(diào)用調(diào)用FindFCB()查找兩文獻(xiàn)的首塊號(hào)顯示錯(cuò)誤信息否文獻(xiàn)存在嗎顯示錯(cuò)誤信息否文獻(xiàn)存在嗎是是fc命令函數(shù)流程圖返回將文獻(xiàn)內(nèi)容進(jìn)行比較并輸出成果fc命令函數(shù)流程圖返回將文獻(xiàn)內(nèi)容進(jìn)行比較并輸出成果詳細(xì)實(shí)現(xiàn)措施:比較部分代碼如下while(s1>0&&s2>0) {for(i=0;i<SIZE;i++,j++) {if(j==size1&&j==size2)break; Buffer1=Disk[s1][i];//讀第一種文獻(xiàn)內(nèi)容Buffer2=Disk[s2][i];//讀第二個(gè)文獻(xiàn)內(nèi)容 if(Buffer1!=Buffer2)//比較 {cout<<"第一種不一樣字節(jié)的位置為第"<<j+1<<"個(gè)字節(jié)"<<endl; cout<<"此時(shí)兩個(gè)文獻(xiàn)的字符分別為"<<Buffer1<<"和"<<Buffer2<<endl;returnfalse;}} if(i<SIZE)break;//結(jié)束while循環(huán),防止進(jìn)入死循環(huán) }if(j==size1&&j==size2){cout<<"兩文獻(xiàn)內(nèi)容相似"<<endl;returntrue;}其中s1和s2分別為兩文獻(xiàn)所在的首塊號(hào),size1和size2為兩文獻(xiàn)的長(zhǎng)度,SIZE為盤(pán)塊的長(zhǎng)度命令操作措施:運(yùn)行後輸入命令fc[文獻(xiàn)名1][文獻(xiàn)名2],對(duì)各項(xiàng)進(jìn)行判斷都對(duì)的後則進(jìn)行對(duì)兩文獻(xiàn)內(nèi)容的逐字節(jié)比較。4.4新增replace命令,實(shí)現(xiàn)文獻(xiàn)取代設(shè)計(jì)思想:首先進(jìn)行各個(gè)條件的判斷,通過(guò)調(diào)用ProcessPath()和FindFCB()函數(shù)查文獻(xiàn)所在的首塊號(hào),假如不存在或在使用則不能取代。假如只有一種參數(shù),則找到當(dāng)然操作的文獻(xiàn)目錄進(jìn)行替代。進(jìn)行需要實(shí)現(xiàn)的各功能的條件判斷後進(jìn)行文獻(xiàn)的替代。詳細(xì)實(shí)現(xiàn)措施:文獻(xiàn)替代的代碼部分如下:size=fcbp->Fsize; //源文獻(xiàn)的長(zhǎng)度 bnum=size/SIZE+(short)(size%SIZE>0); //計(jì)算源文獻(xiàn)所占盤(pán)塊數(shù) size2=fcbp2->Fsize; //被替代文獻(xiàn)的長(zhǎng)度 bnum2=size2/SIZE+(short)(size2%SIZE>0); //計(jì)算源文獻(xiàn)所占盤(pán)塊數(shù) if(FAT[0]+bnum2<bnum) {cout<<"\n磁盤(pán)空間局限性,不能復(fù)制文獻(xiàn)。\n";return-6;}i=PutUdtab(fcbp2); //被替代文獻(xiàn)的有關(guān)信息保留到udtab表中 fcbp2->FileName[0]=(char)0xe5; //被替代目錄項(xiàng) s2=fcbp2->Addr; while(s2>0) //回收磁盤(pán)空間 {s0=s2;s2=FAT[s2];FAT[s0]=0;FAT[0]++;}i=FindBlankFCB(s22,fcbp2); *fcbp2=*fcbp; //源文獻(xiàn)的目錄項(xiàng)復(fù)制給目的文獻(xiàn) strcpy(fcbp2->FileName,FileName); //寫(xiě)目的文獻(xiàn)名 b0=0; while(s>0) //開(kāi)始復(fù)制文獻(xiàn)內(nèi)容 {b=getblock(); if(b0==0)fcbp2->Addr=b; //目的文獻(xiàn)的首塊號(hào) elseFAT[b0]=b; memcpy(Disk[b],Disk[s],SIZE); //復(fù)制盤(pán)塊 s=FAT[s]; //準(zhǔn)備復(fù)制下一種盤(pán)塊 b0=b; } cout<<"\n替代成功\n";return1; } else {cout<<"\n不存在文獻(xiàn)與目的文獻(xiàn)同名。\n";return-3;}添加函數(shù)後的操作:輸入命令replaceboyusr,則用boy文獻(xiàn)替代usr目錄中的boy文獻(xiàn),若指定文獻(xiàn)或被取代文獻(xiàn)不存在,則報(bào)錯(cuò),若被取代的是只讀屬性的文獻(xiàn)時(shí),則會(huì)問(wèn)詢(xún)顧客。假如usr中的boy文獻(xiàn)具有隱藏和系統(tǒng)屬性則不能被取代。假如輸入replaceboy,則取代當(dāng)然操作目錄的同名文獻(xiàn)。4.7修改close、type等命令,容許不帶文獻(xiàn)名參數(shù)設(shè)計(jì)思想:在CloseComd()函數(shù)中修改if(k<1)判斷條件的處理函數(shù)。讓k<1時(shí)對(duì)當(dāng)然的文獻(xiàn)進(jìn)行操作。所謂“目前操作文獻(xiàn)”,是指上一次使用create、open、write、read、rewind或fseek等命令操作過(guò)的文獻(xiàn)。因此添加兩個(gè)全局變量intii和charfilepath[PATH_LEN]在CreateComd()、OpenComd()、WriteComd()等函數(shù)中分別用于記錄目前操作文獻(xiàn)在UOF表中的位置和記錄目前操作文獻(xiàn)的全途徑。當(dāng)close後無(wú)參數(shù)時(shí),則對(duì)目前的文獻(xiàn)進(jìn)行操作,刪除和顯示目前文獻(xiàn)。詳細(xì)實(shí)現(xiàn)措施:修改後CloseComd()中和TypeCome()中的函數(shù)如下:CloseComd(): if(k<1) { uof[ii].state=0; //在UOF中清除目前操作文獻(xiàn)登記欄 p=uof[ii].fp; //取目前操作文獻(xiàn)的目錄項(xiàng)位置指針 p->Addr=uof[ii].faddr; //保留文獻(xiàn)的首塊號(hào) p->Fsize=uof[ii].fsize; //保留文獻(xiàn)的大小 cout<<"\n關(guān)閉文獻(xiàn)"<<filepath<<"成功。\n"; }TypeCome():if(k<1) {intm;size=uof[ii].fsize;Buffer=newchar[size+1]; m=uof[ii].faddr; while(m>0) {for(i=0;i<SIZE;i++,jj++) {if(jj==size)break; Buffer[jj]=Disk[m][i]; } if(i<SIZE)break; } Buffer[jj]='\0';cout<<Buffer<<endl;delete[]Buffer; //釋放分派的動(dòng)態(tài)內(nèi)存空間 }修改後操作措施:輸入命令openboy,則打開(kāi)boy文獻(xiàn),再輸入write或者read等命令則對(duì)boy文獻(xiàn)進(jìn)行對(duì)應(yīng)操作,此時(shí)再輸入close文獻(xiàn),則直接關(guān)閉boy文獻(xiàn),而不需要參數(shù),對(duì)于type也是同樣。4.8完善copy命令設(shè)計(jì)思想:添加函數(shù)copy()和函數(shù)FindBlankFCB()分別用于文獻(xiàn)的復(fù)制和尋找首塊號(hào)為s的目錄中的空目錄項(xiàng),其中FindBlankFCB()用于實(shí)現(xiàn)copy()功能。然後在CopyComd()函數(shù)中判斷copyboy/和copyboy..形式的命令,假如是上述的命令,則將目前目錄/usr中的文獻(xiàn)boy復(fù)制到其父目錄(根目錄)中,文獻(xiàn)名仍為boy。若不是則直接調(diào)用copy()函數(shù)。詳細(xì)實(shí)現(xiàn)措施:FindBlankFCB()函數(shù)如下:intFindBlankFCB(shorts,FCB*&fcbp1) //尋找首塊號(hào)為s的目錄中的空目錄項(xiàng){ shorti,s0; while(s>0) //在首塊號(hào)為s的目錄找空登記欄,直到目錄尾部 { fcbp1=(FCB*)Disk[s]; for(i=0;i<4;i++,fcbp1++) if(fcbp1->FileName[0]==(char)0xe5||fcbp1->FileName[0]=='\0') { fcbp1->Addr=fcbp1->Fsize=0; //假設(shè)為空目錄項(xiàng) return1; //找到空目錄項(xiàng),成功返回 } s0=s; //記下上一種盤(pán)塊號(hào)s=FAT[s]; //取下一種盤(pán)塊號(hào) } if(strcmp(temppath,"/")==0) //若是根目錄 {cout<<"\n根目錄已滿,不能再創(chuàng)立目錄項(xiàng)。\n";return-1;} s=getblock(); //取一空閑盤(pán)快 if(s<0) //無(wú)空閑盤(pán)快 {cout<<"\n磁盤(pán)空間已滿,創(chuàng)立目錄失敗。\n";return-1;} FAT[s0]=s; //構(gòu)成FAT鏈fcbp1=(FCB*)Disk[s]; for(i=0;i<4;i++,fcbp1++)fcbp1->FileName[0]='\0'; //置空目錄標(biāo)志 fcbp1=(FCB*)Disk[s];cbp1->Addr=fcbp1->Fsi
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廠房轉(zhuǎn)讓合同
- 2026年物流地產(chǎn)定制開(kāi)發(fā)合同
- 2026年醫(yī)院品牌建設(shè)咨詢(xún)服務(wù)合同
- 2026年個(gè)人錦鯉養(yǎng)殖承包合同
- 2025年北京林業(yè)大學(xué)自聘勞動(dòng)合同制人員招聘?jìng)淇碱}庫(kù)及1套完整答案詳解
- 2025年涼山彝族自治州普格縣公安局公開(kāi)招聘警務(wù)輔助人員的備考題庫(kù)完整參考答案詳解
- 2025年自貢市自流井區(qū)飛龍峽鎮(zhèn)人民政府招聘編外聘用人員的備考題庫(kù)及一套參考答案詳解
- 黑龍江公安警官職業(yè)學(xué)院《計(jì)算機(jī)基礎(chǔ)B》2024-2025學(xué)年期末試卷(A卷)
- 阿莫西林的課程設(shè)計(jì)
- 2025山東日照五蓮縣教體系統(tǒng)招聘博士研究生2人模擬筆試試題及答案解析
- 2025福建寧德霞浦縣福寧水務(wù)有限公司招聘33人考試筆試模擬試題及答案解析
- 廣東省深圳市寶安區(qū)2024-2025學(xué)年八年級(jí)上學(xué)期1月期末考試數(shù)學(xué)試題
- 2025年全國(guó)反洗錢(qián)知識(shí)競(jìng)賽試題庫(kù)及答案(共95題)
- 2023電氣裝置安裝工程盤(pán)、柜及二次回路接線施工及驗(yàn)收規(guī)范
- 大量不保留灌腸
- 遼寧省名校聯(lián)盟2025-2026學(xué)年高三上學(xué)期12月月考物理試題+答案
- 江西省地方課課件
- (2025年)護(hù)士資格《基礎(chǔ)護(hù)理學(xué)》考試練習(xí)試題附答案
- 小學(xué)英語(yǔ)一般將來(lái)時(shí)精美講課教案
- 水下仿生撲翼推進(jìn)系統(tǒng)設(shè)計(jì)
- 2025年江蘇省安全員C2本考試題庫(kù)+解析及答案
評(píng)論
0/150
提交評(píng)論