-
大小: 1.36MB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2023-11-05
- 語(yǔ)言: 其他
- 標(biāo)簽:
資源簡(jiǎn)介
為linux系統(tǒng)設(shè)計(jì)一個(gè)簡(jiǎn)單的二級(jí)文件系統(tǒng)。要求做到以下幾點(diǎn):
(1)可以實(shí)現(xiàn)下列幾條命令(至少4條);
dir 列文件目錄
create 創(chuàng)建文件
delete 刪除文件
open 打開文件
close 關(guān)閉文件
read 讀文件
write 寫文件
(2)列目錄時(shí)要列出文件名、物理地址、保護(hù)碼和文件長(zhǎng)度;
(3)源文件可以進(jìn)行讀寫保護(hù)。

代碼片段和文件信息
#include??????????????????????????
#include
#include
#include
#include
#include?“define.h“
/***************************************************************************************************************
?????????創(chuàng)建文件系統(tǒng)
****************************************************************************************************************/
void?create_file_system()?????????????????????????????????????
{
fp=fopen(file_system_name“wb+“);??????????????//以讀寫方式打開,如果存在,則覆蓋原來信息,
if(fp==NULL)???????????????????????????????????//否則創(chuàng)建該文件????
{
cout<<“Create?file?system?error!\n“< exit(1);
}
???????????????????????????????????????????????????//申請(qǐng)空間
int?total=sizeof(int)*(DIR_NUM+FILE_NUM+BLOCK_NUM+3)+sizeof(struct?dir_node)*DIR_NUM+sizeof(struct?file_node)*FILE_NUM+BLOCK_SIZE*BLOCK_NUM;
for(long?len=0;len fputc(0fp);
fseek(fp0SEEK_SET);??????????????????????????//寫超級(jí)塊信息
used_dir=1;
fwrite(&used_dirsizeof(int)1fp);
used_file=0;
used_block=0;
fwrite(&used_filesizeof(int)2fp);
dir_flag[0]=1;
fwrite(&dir_flag[0]sizeof(int)1fp);?????????//標(biāo)志對(duì)應(yīng)目錄節(jié)點(diǎn)、文件節(jié)點(diǎn)的使用情況
fwrite(&dir_flag[1]sizeof(int)DIR_NUM+FILE_NUM+BLOCK_NUM-1fp);
strcpy(dir[0].dir_name“A:“);??????????????????//寫根目錄信息
dir[0].dir_count=0;
dir[0].file_count=0;
dir[0].parent=-1;
GetLocalTime(&dir[0].ctime);???????????????????//獲得當(dāng)前時(shí)間
fwrite(&dir[0]sizeof(struct?dir_node)1fp);
???????????????????????????????????????????????????
for(int?i=0;i {
al_dir[i]=0;
al_dflag[i]=0;
dir[i].dir_count=0;
dir[i].file_count=0;
}
for(i=0;i {
al_file[i]=0;
al_fflag[i]=0;
open_files[i]=0;
}
for(i=0;i al_bflag[i]=0;
for(i=0;i buffer[i].flag=0;
fflush(fp);
fclose(fp);
}
/***************************************************************************************************************
搜索目錄或文件,成功則返回該文件或目錄的索引失敗則返回-1,
type用來區(qū)分要搜索的是文件還是目錄0表示目錄,1表示文件,
index用來指定找到的文件或目錄在父目錄下的位置
****************************************************************************************************************/
int?search(int?parentchar?*nameint?typeint?&index)?
{??????????????????????????????????????????????????????
struct?dir_node?*p=&dir[parent];???????????????
int?itemp;????????????????????????????????????
if(type==0)????//表示目錄????????????????????????????????????????????????
for(i=0;idir_count;i++)
{
temp=p->child_dir[i];
if(strcmp(namedir[temp].dir_name)==0)//?字符串相等時(shí)?
{
index=i;
return?temp;
}
}
else
for(i=0;ifile_count;i++)//表示找文件?
{
temp=p->child_file[i];
if(strcmp(namefile[temp].file_name)==0)
{
index=i;
return?temp;
}
}
return?-1;
}
/**********************************************************************************************
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件?????237620??2011-06-28?23:25??linux\Debug\os.exe
?????文件?????291284??2011-06-28?23:25??linux\Debug\os.ilk
?????文件??????71619??2011-06-28?23:25??linux\Debug\os.obj
?????文件????3732436??2011-06-28?23:24??linux\Debug\os.pch
?????文件?????599040??2011-06-28?23:25??linux\Debug\os.pdb
?????文件?????140288??2011-06-28?23:28??linux\Debug\vc60.idb
?????文件??????86016??2011-06-28?23:25??linux\Debug\vc60.pdb
?????文件???????4282??2011-02-16?18:01??linux\define.h
?????文件??????34664??2011-06-28?23:25??linux\os.cpp
?????文件???????3414??2011-06-28?23:30??linux\os.dsp
?????文件????????512??2011-06-28?23:30??linux\os.dsw
?????文件??????41984??2011-06-28?23:30??linux\os.ncb
?????文件??????48640??2011-06-28?23:30??linux\os.opt
?????文件???????1096??2011-06-28?23:25??linux\os.plg
?????文件????2337792??2009-09-06?20:32??linux\操作系統(tǒng)課程設(shè)計(jì)-模擬文件系統(tǒng).doc
?????目錄??????????0??2011-06-28?23:25??linux\Debug
?????目錄??????????0??2011-06-28?23:30??linux
-----------?---------??----------?-----??----
??????????????7630687????????????????????17
- 上一篇:本人收集的幾款精選韓文字體
- 下一篇:Teamcenter 船舶解決方案PLM
評(píng)論
共有 條評(píng)論