91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 311KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-22
  • 語言: 其他
  • 標簽: 文件系統??

資源簡介

1. 在內存中開辟一個虛擬磁盤空間作為文件存儲器,在其上實現一個多用戶多目錄的文件系統。2. 文件物理結構可采用顯式鏈接或其他方法。3. 磁盤空閑空間的管理可選擇位示圖或其他方法。如果采用位示圖來管理文件存儲空間,并采用顯式鏈接分配方式,則可以將位示圖合并到FAT中。4. 文件目錄結構采用多用戶多級目錄結構,每個目錄項包含文件名、物理地址、長度等信息,還可以通過目錄項實現對文件的讀和寫的保護。目錄組織方式可以不使用索引結點的方式,但使用索引結點,則難度系數為1.2。5. 設計一個較實用的用戶界面,方便用戶使用。要求提供以下相關文件操作:(1)具有login (用戶登錄)(2)系統初始化(建文件卷、提供登錄模塊)(3)文件的創建: create(4)文件的打開:open(5)文件的讀:read(6)文件的寫:write(7)文件關閉:close(8)刪除文件:delete (9)創建目錄(建立子目錄):mkdir(10)改變當前目錄:cd(11)列出文件目錄:dir(12)退出:logout6. 系統選用程序設計語言:C。7.含源代碼與實驗報告

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?

const?unsigned?FILE_SYS_SIZE?=?1024?*?1024; //模擬文件系統的容量設為1M
const?unsigned?BITMAP_LEN?=?64; //位示圖的長度?512/8
const?unsigned?BLOCK_SIZE?=?512; //一個文件塊的大小
const?unsigned?BLOCK_COUNT?=?512; //文件系統中文件塊的數量
const?unsigned?NAME_LEN?=?11; ????//最長文件名的長度
const?unsigned?PASSWORD_LEN?=?11; //用戶密碼的最大長度
const?unsigned?LOGIN_COUNT?=?5; ????????//用戶登錄嘗試次數
const?unsigned?COMMAND_LEN?=?200; //命令行最大長度
const?unsigned?PRO_SET_COMM_COU?=?10; ????//預設命令數

const?char?*PRO_SET_COMM[]?=?{“create“?“open“?“read“?“write“?“close“?“delete“?“mkdir“?“cd“?“dir“?“logout“};

//文件元素可供操作性權限
typedef?enum?
{
pub //任何人可做任何操作
protect //非創建者或ADMIN,只可以察看
pri //非創建者或ADMIN,不可以做任何操作
}?FileAccess;

//文件元素類型
typedef?enum
{
file //文件
dir //文件夾
}?FileType;

//用戶類型
typedef?enum
{
admin //管理者,擁用所有權限
comm //一般用戶
}?UserType;

//文件狀態
typedef?enum
{
closed
opened
reading
writing
}?FileStatus;


//一個文件索引結構
typedef?struct?
{
unsigned?Index; //文件元素索引編號
char?FileName[NAME_LEN]; ????//文件元素名
char?ParentName[NAME_LEN]; ????????//父節點名
unsigned?FileBlockId; //文件元素所在物理塊編號
unsigned?FileLevel; //文件元素所在層次,層+文件元素名為一個文件元素的邏輯位置
unsigned?effect; //是否有效,0-無效,1-有效
}?FileIndexElement;

//文件索引結構或目錄表項
typedef?struct
{
FileIndexElement?*FIStart; //文件系統中的文件索引起始位置
unsigned?FILen; //文件索引的最大長度
unsigned?FICount; //文件索引數量
}?FileIndex;

//文件塊的結構
typedef?struct?fb
{
unsigned?FileBlockId; //文件塊編號
unsigned?BLOCK_SIZE; //文件塊的容量
char?*FileBlockAddr; //文件塊地址
struct?fb?*next; //下一個文件塊的地址
}?FileBlock;

//文件系統的位示圖結構
typedef?struct?
{
unsigned?BITMAP_LEN; //文件位示圖長度
char?*BMStart; ????//位示圖的起始指針
}?BitMap;

//文件系統結構
typedef?struct?
{
char?*FSStart; //文件系統的起始地址
unsigned?SuperBlockSize; ????//文件系統的容量
BitMap?bm; //文件系統中的位示圖
unsigned?BLOCK_COUNT; //文件系統中文件塊的數量
FileBlock?*head; //文件系統中文件塊首地址
FileIndex?FI; //文件系統中的文件索引
}?SuperBlock;

typedef?struct?
{
char?*UserName; //用戶名稱
UserType?ut; //用戶類型
}?User;

//文件系統中的元素結構,包括文件和文件夾
typedef?struct?fse
{
struct?fse?*parent; //指向自己的父親節點
unsigned?FileLevel; //文件元素所在層次,層+文件元素名為一個文件元素的邏輯位置
char?FileName[NAME_LEN]; ????//文件元素名
unsigned?FileBlockId; //文件元素所在物理塊編號
unsigned?FileElemLen; //文件元素的長度
FileType?Type; //文件元素類型
FileAccess?Access; //文件元素可供操作的權限
User?Creator; //文件創建者
char?CreateTime[18]; //創建時間,日期格式:MM/DD/YY?HH:MI:SS
char?LastModTime[18]; //最后一次修改時間
char?*FileData; //一個文件的數據開始地址,文件夾時該值為NULL
FileStatus?fileStu; //如果是一個文件表示文件當前的狀態
}?FSElement;

//系統當前狀態
typedef?struct
{
User?CurrentUser; //當前用戶
unsigned?FileLevel; //用戶所在文件系統層
FSElement?*CurrParent; //當前層的父節點
char?*CurrentPath; //當前路徑
}?CurrentStatus;

SuperBlock?FS; //一個全局文件系統的變量
CurrentStatus?CS; //當前系統狀態
FSElement?*base; //文

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件?????637440??2007-06-29?10:57??FileSystme\實驗報告.doc

?????文件??????22214??2007-06-29?00:45??FileSystme\多用戶多級目錄文件系統.cpp

?????文件??????49152??2007-06-29?00:50??FileSystme\可執行文件.exe

?????目錄??????????0??2007-08-30?01:11??FileSystme

-----------?---------??----------?-----??----

???????????????708806????????????????????4


評論

共有 條評論