基于C++的類UNIX文件系統(tǒng)
訪問【W(wǎng)RITE-BUG數(shù)字空間】_[內(nèi)附完整源碼和文檔]
一、題目要求
使用一個(gè)普通的大文件(如 c:\myDisk.img ,稱之為一級(jí)文件)模擬 UNIX V6++的一個(gè)文件卷,一個(gè)文件卷實(shí)際上就是一張邏輯磁盤,磁盤中存儲(chǔ)的信息以塊為單位。每塊 512字節(jié)。
磁盤文件結(jié)構(gòu)
定義自己的磁盤文件結(jié)構(gòu)
SuperBlock 結(jié)構(gòu)
磁盤 Inode 節(jié)點(diǎn)結(jié)構(gòu),包括:索引結(jié)構(gòu)及邏輯塊號(hào)到物理塊號(hào)的映射
磁盤 Inode 節(jié)點(diǎn)的分配與回收算法設(shè)計(jì)與實(shí)現(xiàn)
文件數(shù)據(jù)區(qū)的分配與回收算法設(shè)計(jì)與實(shí)現(xiàn)
文件目錄結(jié)構(gòu)
目錄文件結(jié)構(gòu)
目錄檢索算法的設(shè)計(jì)與實(shí)現(xiàn)
文件打開結(jié)構(gòu):選作
磁盤高速緩存:選作
文件操作接口
? void fformat(); 格式化文件卷 ?? void ls(); 列目錄 ?? int fopen(char *name, int mode); 打開文件 ?? void fclose(int fd); 關(guān)閉文件 ?? int fread(int fd, char *buffer, int length); 讀文件 ?? int fwrite(int fd, char *buffer, int length);寫文件 ?? int flseek(int fd, int position); 定位文件讀寫指針 ?? int fcreat(char *name, int mode); 新建文件 ?? int fdelete(char *name); 刪除文件
主程序
初始化文件卷,讀入 SuperBlock
圖形界面或者命令行方式,等待用戶輸入
根據(jù)用戶不同的輸入,返回結(jié)果



