資源簡介

代碼片段和文件信息
#include?
#include?
#include?
#define?DIR_LENGTH??1024??????//路徑最長可達1024字節
#define?MAX_WRITE?1024*128????//寫入文字可達128k字節??????
#define?DISKSIZE?1024?????????//磁盤快的大小?1K
#define?MSD???5???????????????//最大子目錄數?5?(類似五叉樹)
#define?DISK_NUM?1024*1024/DISKSIZE??//盤塊數目
#define?FATSIZE??DISK_NUM*sizeof(struct?fatitem)?//FAT表大小
#define?MOFN??5???????????????//最大文件打開數?5?(即除根以外最大深度為5)
#define?ROOT_DISK_NO?FATSIZE/DISKSIZE+1??//根目錄起始盤塊號?9
#define?ROOT_DISK_SIZE?sizeof(struct?direct)//根目錄大小?196?
//目錄結構
struct?direct
//文件控制塊信息
{
struct?FCB
{
char?name[9];??//文件/目錄名?8位
char?property;??//屬性?1位目錄?0位普通文件
int?size;???//文件/目錄字節數(原注釋位盤塊數)
int?firstdisk;??//文件/目錄?起始盤塊號
int?next;???//子目錄起始盤塊號
int?sign;???//1是根目錄?0不是根目錄
}directitem[MSD+2];
};
//FAT表結構
struct?fatitem
{
int?item;??//存放文件下一個磁盤的指針
char?em_disk;?//磁盤塊是否空閑標志位?0表示空閑
};
//文件打開表結構
struct?opentable
{
struct?openttableitem
{
char?name[9];?//文件名
int?firstdisk;?//起始盤塊號?
int?size;??//文件的大小
}openitem[MOFN];
int?cur_size;??//當前打文件的數目
};
struct?fatitem?*fat;???//FAT表
struct?direct?*root;???//根目錄
struct?direct?*cur_dir;???//當前目錄
struct?opentable?u_opentable;?//文件打開表
int??fd=-1;?????//文件打開表的序號
char?*bufferdir;????//記錄當前路徑的名稱
char?*fdisk;?????//虛擬磁盤起始地址
void?initsystem();
void?format();
void?enter();
void?exit();
int?create(char?*name);
int?open(char?*name);
int?close(char?*name);
int?write(int?fdchar?*bufint?len);
int?read(int?fdchar?*buf);
int?del(char?*name);
int?mkdir(char?*name);
int?rmdir(char?*name);
void?dir();
int?cd(char?*name);
void?print();
void?showpath();
//初始化文件系統
void?initsystem()
{
fdisk?=?(char?*)malloc(1024*1024*sizeof(char));?//申請?1M空間
format();
free(fdisk);
}
//格式化
void?format()
{
int?i;
FILE?*fp;
fat?=?(struct?fatitem?*)(fdisk+DISKSIZE);?//計算FAT表地址
//初始化FAT表
fat[0].item=-1;??//引導塊
fat[0].em_disk=‘1‘;
for(i=1;i {
fat[i].item=i+1;
fat[i].em_disk=‘1‘;??
}
fat[ROOT_DISK_NO-1].item=-1;
fat[ROOT_DISK_NO-1].em_disk=‘1‘;
fat[ROOT_DISK_NO].item=-1;??//存放根目錄的磁盤塊號
fat[ROOT_DISK_NO].em_disk=‘1‘;
for(i=ROOT_DISK_NO+1;i {
fat[i].item?=?-1;
fat[i].em_disk?=?‘0‘;??
}
root?=?(struct?direct?*)(fdisk+DISKSIZE+FATSIZE);?//根目錄的地址
//初始化目錄
//指向當前目錄的目錄項
root->directitem[0].sign?=?1;
root->directitem[0].firstdisk?=?ROOT_DISK_NO;
strcpy(root->directitem[0].name“.“);
root->directitem[0].next?=?root->directitem[0].firstdisk;
root->directitem[0].property?=?‘1‘;
root->directitem[0].size?=?ROOT_DISK_SIZE;
//指向上一級目錄的目錄項
root->directitem[1].sign?=?1;
root->directitem[1].firstdisk?=?ROOT_DISK_NO;
strcpy(root->directitem[1].name“..“);
root->directitem[1].next?=?root->directitem[0].firstdisk;
root->directitem[1].property?=?‘1‘;
root->directitem[1].size?=?ROOT_DISK_SIZE;
for(i=2;i {
root->directitem[i].sign?=?0;
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????1048576??2011-03-23?15:37??操作系統課程設計報告-單用戶多級文件系統設計\單用戶文件系統\Debug\disk.dat
?????文件?????188513??2011-03-23?15:36??操作系統課程設計報告-單用戶多級文件系統設計\單用戶文件系統\Debug\FileSystem.exe
?????文件?????201604??2011-03-23?15:36??操作系統課程設計報告-單用戶多級文件系統設計\單用戶文件系統\Debug\FileSystem.ilk
?????文件??????47450??2011-03-23?15:36??操作系統課程設計報告-單用戶多級文件系統設計\單用戶文件系統\Debug\FileSystem.obj
?????文件?????222688??2011-03-09?16:09??操作系統課程設計報告-單用戶多級文件系統設計\單用戶文件系統\Debug\FileSystem.pch
?????文件?????484352??2011-03-23?15:36??操作系統課程設計報告-單用戶多級文件系統設計\單用戶文件系統\Debug\FileSystem.pdb
?????文件??????33792??2011-03-23?15:36??操作系統課程設計報告-單用戶多級文件系統設計\單用戶文件系統\Debug\vc60.idb
?????文件??????53248??2011-03-23?15:36??操作系統課程設計報告-單用戶多級文件系統設計\單用戶文件系統\Debug\vc60.pdb
?????文件????1048576??2011-03-21?20:35??操作系統課程設計報告-單用戶多級文件系統設計\單用戶文件系統\disk.dat
?????文件??????25124??2011-04-19?12:42??操作系統課程設計報告-單用戶多級文件系統設計\單用戶文件系統\FileSystem.cpp
?????文件???????3449??2011-03-09?16:10??操作系統課程設計報告-單用戶多級文件系統設計\單用戶文件系統\FileSystem.dsp
?????文件????????545??2011-03-09?16:10??操作系統課程設計報告-單用戶多級文件系統設計\單用戶文件系統\FileSystem.dsw
?????文件??????50176??2011-04-19?12:56??操作系統課程設計報告-單用戶多級文件系統設計\單用戶文件系統\FileSystem.ncb
?????文件??????53760??2011-04-19?12:56??操作系統課程設計報告-單用戶多級文件系統設計\單用戶文件系統\FileSystem.opt
?????文件????????256??2011-04-19?12:45??操作系統課程設計報告-單用戶多級文件系統設計\單用戶文件系統\FileSystem.plg
?????文件????1048576??2011-04-19?16:46??操作系統課程設計報告-單用戶多級文件系統設計\單用戶文件系統\Release\disk.dat
?????文件??????57344??2011-04-19?12:42??操作系統課程設計報告-單用戶多級文件系統設計\單用戶文件系統\Release\FileSystem.exe
?????文件??????31919??2011-04-19?12:42??操作系統課程設計報告-單用戶多級文件系統設計\單用戶文件系統\Release\FileSystem.obj
?????文件?????223000??2011-04-19?12:42??操作系統課程設計報告-單用戶多級文件系統設計\單用戶文件系統\Release\FileSystem.pch
?????文件??????33792??2011-04-19?12:45??操作系統課程設計報告-單用戶多級文件系統設計\單用戶文件系統\Release\vc60.idb
?????文件?????150528??2011-03-21?20:54??操作系統課程設計報告-單用戶多級文件系統設計\單用戶文件系統\單用戶文件系統.doc
?????文件????1232896??2012-05-17?11:11??操作系統課程設計報告-單用戶多級文件系統設計\操作系統課程設計演示文稿.ppt
?????文件?????293888??2012-05-17?11:10??操作系統課程設計報告-單用戶多級文件系統設計\課程設計總結.doc
?????目錄??????????0??2012-05-17?11:10??操作系統課程設計報告-單用戶多級文件系統設計\單用戶文件系統\Debug
?????目錄??????????0??2012-05-17?11:10??操作系統課程設計報告-單用戶多級文件系統設計\單用戶文件系統\Release
?????目錄??????????0??2012-05-17?11:10??操作系統課程設計報告-單用戶多級文件系統設計\單用戶文件系統
?????目錄??????????0??2012-05-17?11:11??操作系統課程設計報告-單用戶多級文件系統設計
-----------?---------??----------?-----??----
??????????????6534052????????????????????27
............此處省略0個文件信息
評論
共有 條評論