版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、中北大學(xué)操作系統(tǒng)課程設(shè)計(jì)說明書 學(xué)院、系:軟件學(xué)院專業(yè):軟件工程學(xué)生姓名:申云如學(xué)號(hào):1121011914設(shè)計(jì)題目:基于Linux的模擬文件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)起迄日期:2013年11月22日 2013年12月6日指導(dǎo)教師:李玉蓉 2013 年 12月 6 日1 需求分析本次是基于Linux的模擬文件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),其設(shè)計(jì)內(nèi)容如下:1、設(shè)計(jì)一個(gè)10個(gè)用戶的文件系統(tǒng)。每個(gè)用戶最多可以保存10個(gè)文件,一次運(yùn)行用戶可打開多個(gè)文件。2、程序采用二級(jí)文件目錄。(即設(shè)置主目錄(MFD)和用戶文件目錄(UFD))。另外,可打開文件設(shè)置指針.3、為了方便實(shí)現(xiàn),對文件的
2、讀寫作了簡化。在執(zhí)行讀寫命令時(shí),只需改讀寫指針。并不進(jìn)行實(shí)際的讀寫操作。4、實(shí)現(xiàn)的基本功能主要包括:改變目錄(CD),創(chuàng)建目錄(MD),顯示目錄(DIR),刪除目錄(RD),打開全部文件(openall),打開單個(gè)文件(open),建立一個(gè)文件(create),刪除一個(gè)文件(delete),寫文件(write),讀文件(read),改文件的保護(hù)碼(change),退出(exit)等.要求:考慮特殊情況如:各個(gè)命令對全路徑和相對路徑的支持、目錄不存在時(shí),給出錯(cuò)誤信息、不能用cd進(jìn)入文件、命令之中不能有空格(如 ex it,給出錯(cuò)誤提示)、相對路徑的解析、路徑中的空格剔除、新建目錄或文件時(shí)的問題、
3、重名問題、目錄或文件的名字長度限制、目錄或文件的名字中包含不合法字符(注意空格)、刪除目錄或文件時(shí)的問題、刪除不存在的文件或目錄給出錯(cuò)誤提示、刪除目錄時(shí)目錄不為空(如果該目錄為空,則可刪除,否則給出是否做刪除提示,刪除操作將該目錄下的全部文件和子目錄都刪除)、進(jìn)入到某個(gè)目錄下,卻要?jiǎng)h除本目錄或上級(jí)目錄、不能用delete刪除目錄、不能用RD刪除文件等都要考慮在內(nèi).用戶驗(yàn)證和操作算法思想:用結(jié)構(gòu)體struct user來對用戶信息進(jìn)行存儲(chǔ),利用userHead鏈表對用戶進(jìn)行檢索和查找在線用戶,以便更好的實(shí)現(xiàn)用戶登錄的驗(yàn)證。目錄操作算法思想:首先用結(jié)構(gòu)體struct ldir存儲(chǔ)目錄信息,利用數(shù)組
4、對目錄名以及目錄創(chuàng)建時(shí)間進(jìn)行存儲(chǔ),在每次創(chuàng)建目錄時(shí),檢索目錄鏈表,進(jìn)行添加鏈表;改變目錄,調(diào)用cd()來實(shí)現(xiàn)對目錄的改變,刪除文件時(shí),依次檢索鏈表來實(shí)現(xiàn)對鏈表的刪除,并實(shí)施操作刪除文件系統(tǒng)的目錄;添加目錄時(shí),用添加鏈表的函數(shù)進(jìn)行添加,并實(shí)施操作添加文件系統(tǒng)的目錄。文件操作算法思想:首先用結(jié)構(gòu)體struct fifle存儲(chǔ)文件信息,利用數(shù)組對文件名,文件創(chuàng)建者,文件權(quán)限,文件創(chuàng)建時(shí)間,在每次創(chuàng)建文件時(shí),檢索文件鏈表,進(jìn)行添加鏈表,并實(shí)施操作添加文件系統(tǒng)的目錄;刪除文件時(shí),依次檢索鏈表來實(shí)現(xiàn)對鏈表的刪除,并實(shí)施操作刪除文件系統(tǒng)的文件;改變文件權(quán)限時(shí),查找文件鏈表并返回文件的基本信息,開始對文件的權(quán)
5、限修改. 2 總體設(shè)計(jì)本程序共分為11個(gè)功能,在小組任務(wù)分配中共分為四個(gè)部分:文件系統(tǒng)的整體設(shè)計(jì)接口和用戶驗(yàn)證、目錄和文件鏈表的操作和接口實(shí)現(xiàn)、目錄操作功能的實(shí)現(xiàn)以及文件操作功能的實(shí)現(xiàn)。主函數(shù)首先對用戶進(jìn)行驗(yàn)證,然后調(diào)用11個(gè)函數(shù),來實(shí)現(xiàn)對文件系統(tǒng)各功能的實(shí)現(xiàn),各函數(shù)為: cd();md();dir();rd();open();creat();delet();writ(); chmode();help();exit(1);主函數(shù)主要是先對用戶鏈表進(jìn)行初始化,然后進(jìn)行用戶驗(yàn)證以及登錄,并選擇命令對文件進(jìn)行操作.整體流程圖如下圖2-1所示:圖213。詳細(xì)設(shè)計(jì)/添加目錄列表void adddir(c
6、har dirname,char creattime) struct ldir p,q; q=(struct ldir )malloc(sizeof(struct ldir)); strcpy(qdirname,dirname); strcpy(q->creattime,creattime); p=dirHead; if(p=NULL) /判斷是否是頭指針userHead dirHead=q; dirHeadnext=NULL; else while(p>next!=NULL) p=pnext; p-next=q; qnext=NULL; /創(chuàng)建目錄void md() time_t
7、 ptime; time(ptime); char dirname20; int stat=0; /判斷目錄是否創(chuàng)建成功 printf(”請輸入創(chuàng)建的目錄名:n"); scanf(”s",dirname); stat=mkdir(dirname); /創(chuàng)建目錄 if(!stat) printf(”目錄創(chuàng)建成功!n”) ; adddir(dirname,ctime(ptime); else printf("目錄創(chuàng)建失??!n”); /改變目錄void cd() char curdir30; /當(dāng)前目錄 char dirname10; /改變目錄 printf(&quo
8、t;當(dāng)前路徑為:n”); strcpy(curdir,getcwd(NULL,0)); printf(”%sn”,curdir); printf("請輸入改變的目錄n”); scanf(”%s”,dirname); chdir(dirname); /改變目錄 strcat(curdir,”/"); strcat(curdir,dirname); printf(”改變后的目錄為:n”); printf("sn”,curdir);/刪除目錄int deletdir(char dirname) struct ldir p,q; p=dirHead; if(p=NULL)
9、 /檢驗(yàn)鏈表是否為空 return 0; while(p!=NULL&&strcmp(p>dirname,dirname)) q=p; p=pnext; /保存上一指針 if(p=dirHead) /尋找目錄名是頭指針 dirHead=dirHeadnext; else q>next=pnext; free(p); /釋放占用內(nèi)存 return 1;/刪除目錄void rd() char dirname20; printf(”請輸入要?jiǎng)h除的目錄名:n”); scanf(”s”,dirname); if(deletdir(dirname) printf(”目錄刪除成功
10、!n"); rmdir(dirname); /刪除目錄 else printf(”目錄刪除失敗!n”); /顯示目錄void dir() struct ldir p; p=dirHead; while(p!=NULL) printf(”st%sn”,pcreattime,p>dirname); p=pnext; 登陸如圖:創(chuàng)建目錄,顯示目錄如圖:刪除目錄如圖:改變目錄如圖:4。心得體會(huì)經(jīng)過近兩個(gè)星期的實(shí)驗(yàn),這次的課程設(shè)計(jì)終于完成了.本次課程設(shè)計(jì)是基于Linux的模擬文件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),本次課程設(shè)計(jì)是我們第一次運(yùn)用linux編程,中間遇到了很多困難,在這次實(shí)驗(yàn)中,我們充分理解并運(yùn)用了linux下的文件和目錄的操作,理解了c語言的文件操作和目錄操作,并且重新復(fù)習(xí),理解了C語言,內(nèi)存的開辟以及鏈表的使用方式。學(xué)習(xí)并熟悉了linux操作系統(tǒng)的使用,使用了linux下的C語言的編譯環(huán)境gcc等的使用及操作方式
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年滬科版必修3英語上冊月考試卷含答案
- 2025年外研版2024選修2地理上冊階段測試試卷
- 二零二五版門衛(wèi)值班人員設(shè)備維護(hù)聘用合同4篇
- 2025年度新能源汽車電池回收與利用分包合同4篇
- 二零二五年度智能物流解決方案內(nèi)部銷售承包合同4篇
- 二零二五年度木門行業(yè)環(huán)保標(biāo)準(zhǔn)采購合同2篇
- 《包裝設(shè)計(jì)》 案例賞析 第4章 香生記品牌包裝設(shè)計(jì)
- 2025版內(nèi)退員工勞動(dòng)合同范本:食品行業(yè)專用4篇
- 2025年度影視基地租賃合同范本及知識(shí)產(chǎn)權(quán)保護(hù)協(xié)議3篇
- 2025年農(nóng)場農(nóng)業(yè)廢棄物回收利用服務(wù)合同4篇
- 平安產(chǎn)險(xiǎn)陜西省地方財(cái)政生豬價(jià)格保險(xiǎn)條款
- 銅礦成礦作用與地質(zhì)環(huán)境分析
- 30題紀(jì)檢監(jiān)察位崗位常見面試問題含HR問題考察點(diǎn)及參考回答
- 詢價(jià)函模板(非常詳盡)
- 《AI營銷畫布:數(shù)字化營銷的落地與實(shí)戰(zhàn)》
- 麻醉藥品、精神藥品、放射性藥品、醫(yī)療用毒性藥品及藥品類易制毒化學(xué)品等特殊管理藥品的使用與管理規(guī)章制度
- 一個(gè)28歲的漂亮小媳婦在某公司打工-被老板看上之后
- 乘務(wù)培訓(xùn)4有限時(shí)間水上迫降
- 2023年低年級(jí)寫話教學(xué)評語方法(五篇)
- DB22T 1655-2012結(jié)直腸外科術(shù)前腸道準(zhǔn)備技術(shù)要求
- GB/T 16474-2011變形鋁及鋁合金牌號(hào)表示方法
評論
0/150
提交評論