xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 6KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-29
  • 語言: 其他
  • 標簽: FAT文件??目錄??

資源簡介

用一個文件虛擬為磁盤,在其上模擬多級目錄的FAT文件系統。并提供相應的用戶操作界面??梢蚤_發為控制臺應用程序或windows窗體程序。 功能: 實現基本的目錄和文件的操作。比如,目錄的切換,顯示當前路徑,顯示目錄內容,目錄和文件的建立、復制、刪除、重命名,文件內容顯示,文件導入(從真實的文件系統中導入一個文件存放到該模擬文件系統中),文件的導出(將模擬文件系統中的一個文件導出到真實的文件系統中)。

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?
#include?
#include?
using?namespace?std;

#define?MAX_FILE_NAME?16???//?文件名最大長度
#define?INODE_NUM?100??????//?設備目錄區中可存放的I節點的個數
#define?BLOCK_NUM?1024?????//?文件區盤塊數
#define?BLOCK_SIZE?512?????//?文件盤塊大小
#define?MAX_COMMAND_NUM?10?//?用戶輸入的命令中參數最多個數
#define?MAX_COMMAND_LENGTH?20??//?用戶輸入命令的每個參數的最大長度

//數據結構定義
struct?VolumeInfo
{
long?iNodeTableAddress;??//設備目錄表地址
long?fatTableAddress;????//fat表地址
long?dataAreaAddress;????//數據表地址
long?totalSpace;?????????//總空間
long?usedBlock;??????????//占用塊數
long?leftSpace;??????????//剩余空間
};

struct?INode
{
long?index;????????//索引號
int?type;??????????//文件類型,0為目錄,1為文件,-1是空閑
long?address;??????//fat表區
long?size;?????????//文件大小
};

struct?Fat
{
long?nextAddress;??//塊鏈中下一塊是否存在,為-2表空閑,否則表占用
};

struct?FileIndex
{
char?name[MAX_FILE_NAME];?????//文件名
long?iNodeIndex;??????????????//索引號
};

//全局變量
int?fd;?????????????????????????????????????????????????//模擬文件系統的文件的文件描述符
VolumeInfo?volumeInfo;???????????????????????????????????//盤卷總信息
char?command[MAX_COMMAND_NUM][MAX_COMMAND_LENGTH];??????//存放用戶輸入的命令的字符串數組
int?commandNum;?????????????????????????????????????????//用于存放用戶輸入的命令的參數個數
INode?currentINode;?????????????????????????????????????//用戶當前目錄的描述信息
char?name[MAX_FILE_NAME][MAX_FILE_NAME];????????????????//當前路徑

//顯示命令提示符,并接受用戶輸入的命令
void?getCommand()
{
//處理用戶輸入的命令,放入command二維數組中
char?commandChar;????
int?commandLength;???//命令長度
commandNum?=?0;??????//命令個數????
commandLength?=?0;

while(1)
{
cout?< cin?>>?commandChar;???????
while(commandChar?!=?‘\n‘)???//若輸入不為換行
{
if(commandChar?==?‘?‘)????//若輸入空格
{
if(commandLength?!=?0)??//若命令長度不為0
{
command[commandNum][commandLength]?=?‘\0‘;?????//參數輸入結束
commandNum++;??????????????????????????????????//進入下一個參數
commandLength?=?0;?????????????????????????????//置下一個參數長度為0
}
commandChar?=?getchar();??????
continue;??????????????????//進入下一次循環
}

else?????????//若輸入不為空格
{
command[commandNum][commandLength]?=?commandChar;???//將字符放入二維數組
commandLength++;????
}
commandChar?=?getchar();?
}
command[commandNum][commandLength]?=?‘\0‘;??//最后一個參數輸入結束
if(commandLength?>?0?)?????//如果長度大于0
commandNum++;??????//進入新的存儲字符區域
if(commandNum?!=?0)????????//如果命令參數不為0
break;?????????????//退出循環
}
}???

//清屏
void?vfs_clear()
{
system(“cls“);
}

//根據INode索引寫入INode
void?setINode(INode*?pINodelong?index)
{
pINode->index?=?index;
lseek(fdvolumeInfo.iNodeTableAddress?+?index?*?sizeof(INode)SEEK_SET);
write(fdpINodesizeof(INode));
}
//格式化
void?vfs_format()
{
int?i?=?0;
name[10][MAX_FILE_NAME]?=?0;
lseek(fd0SEEK_SET);??//移動文件讀寫指針到虛擬文件系統的開始處
//初始化盤卷總信息
volumeInfo.iNodeTableAddress?=?sizeof(VolumeInfo);??????
volumeInfo.fatTableAddress?=?volumeI

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

?????文件??????27108??2009-12-11?11:23??fat1.cpp

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

????????????????27108????????????????????1


評論

共有 條評論