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

資源簡介

用C編寫的一個Unix/Linux文件系統

資源截圖

代碼片段和文件信息

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

struct?command //命令行
{?
char?com[10];
}cmd[22];?

struct?user //系統用戶組
{
int?userid;
char?username[10];
char?password[10];
int?groupid;
}users[8];

struct?block //塊信息
{?
int?a; //?模擬盤塊是否被占用?
int?n; //?下一組空閑的盤塊的個數
int?free[50]; //?下一組存放空閑盤塊的地址?
};

struct?block_super //超級塊???使用成組鏈接法來表示空閑塊信息
{?
int?n; //?空閑的盤塊的個數
int?free[50];???//?存放進入棧中的空閑塊
block?memory[20449]; //全部塊信息
}super_block;

struct?node //?i結點信息??
{?
int?file_style; //?i結點?文件類型?0代表文件類型是目錄文件?1代表文件類型是普通文件?
int?file_length; //?i結點?文件長度??
int?file_mode; //?i結點?讀寫權限??
int?file_userid; //?i結點?所屬用戶
int?file_groupid; //?i節點?所屬組別
int?file_address[100];??//?i結點?文件的物理地址?
int?file_ilink;
}?i_node[640];

struct?dir //?目錄項信息?
{?
char?file_name[10]; //?文件名??
int??i_num; //?文件的結點號??
char?dir_name[10]; //?文件所在的目錄
int?is_slink;
char?P_filename[10];
}?root[640];

struct?physical_block //定義存放文件的數據體
{
char?p[512];
}physicalBlock[20449];

struct?user_open_table //用戶打開表項
{
int?point[25]; //用戶打開文件指針(指向系統打開表項)
}UserOpenTable[8];

struct?system_open_table//系統打開表項
{
char?filename[10]; //文件名稱
int??a_num; //指針,指向活動i結點
}SystemOpenTable[200];

struct?active_node //活動i節點
{
struct?node?file_node; //結點具體信息
int?i_count; //計數,打開該文件的用戶數
int?i_num; //指針,指向結點號
}ActiveNode[200];

user?cur_user; //當前用戶
char?cur_dir[10]=“root“; //當前目錄?
int address_buffer[1000];???//文件地址緩沖區
int?a_num; //當前活動節點位置
char?buffer[512]; //寫文件內容緩沖

//聲明函數
//與文件系統初始化及運行相關的函數
void?InitSystem(FILE?*fp);
void?InitDisks();
void?InitUsers();
void?InitTable();
void?InitCommand();
void?Run(FILE?*fp);
//讀寫信息的函數
void?ReadFromFile(FILE?*fp);
void?WriteToFile(FILE?*fp);
void?ReadUsers(FILE?*fps);
void?SaveUsers(FILE?*fps);
//支持命令運行的函數
void?InsertTable(char?filename[]?int?i_num);
int?SelectTable(char?filename[]);
int?IsPermit(int?i_num?char?operation);
int?AllotDisks(int?length);
void?RecoverDisks(int?length);
//與命令有關的函數
int?login();
void?help();
void?show_curdir();
void?go_dir(char?tmp[]);
void?back_dir();
void?create_dir(char?tmp[]);
void?del_dir(char?tmp[]);
void?create_file(char?tmp[]);
void?open_file(char?tmp[]);
void?read_file(char?tmp[]);
void?write_file(char?tmp[]);
void?close_file(char?tmp[]);
void?delete_file(char?tmp[]);
void?show_info();
void?logout(FILE?*fp);
int?change_user(FILE?*fpchar?tmp[]);
void?change_mode(char?tmp[]);
void?manage_user();
void?h_link(char?tmp[]);
void?s_link(char?tmp[]);
void?rename(char?tmp[]);
void?cas_deldir(char?tmp[]);

void?main()
{
FILE?*fp;?
fp=fopen(“filesystem““rb“);//打開文件用二進制的方式讀取
InitSystem(fp); //初始化系統
InitCommand(); //初始化命令
Run(fp); //運行
}
//初始化系統操作如果有系統文件就讀取如果沒有就通過調用各初始化函數初始化系統
void?InitSystem(FILE?*fp)
{
//如果文件存在讀取如果文件不存在就初始化
if(fp==NULL)
{?
InitDisks(); //首次生成時初始化磁盤
}?
else?
{?
ReadFromF

評論

共有 條評論