二級檔案管理課程設計

2021-05-31 05:32:10 字數 2858 閱讀 5117

課程設計名稱: 二級檔案管理系統

專業班級

學生姓名

學號指導老師

一、 設計目的

通過乙個簡單多使用者檔案系統的設計,加深理解檔案系統的內部功能及內部實現。

二、設計內容

為linux系統設計乙個簡單的二級檔案系統。要求做到以下幾點:

(1)可以實現下列幾條命令(至少4條);

login 使用者登陸

dir列檔案目錄

create 建立檔案

delete 刪除檔案

open開啟檔案

close 關閉檔案

read讀檔案

write 寫檔案

rename重新命名

(2)列目錄時要列出檔名、實體地址、保護碼和檔案長度;

(3)原始檔可以進行讀寫保護。

三、程式設計

1、在記憶體中開闢乙個虛擬磁碟空間作為檔案儲存器,在其上實現乙個多使用者多目錄的檔案系統。

2、檔案物理結構可採用顯式鏈結或其他方法。

3、磁碟空閒空間的管理可選擇位示圖或其他方法。如果採用位示圖來管理檔案儲存空間,並採用顯式鏈結分配方式,則可以將位示圖合併到fat中。

4、檔案目錄結構採用多使用者多級目錄結構,每個目錄項包含檔名、實體地址、長度等資訊,還可以通過目錄項實現對檔案的讀和寫的保護。

5、設計乙個較實用的使用者介面,方便使用者使用。要求提供以下相關檔案操作:使用者登入、建立目錄、刪除目錄、建立檔案、刪除檔案、讀檔案、寫檔案、

重新命名、退出。

四、源**

1、filesystem.h

#define dir_length 1024路徑最長可達節

#define max_write 1024*128寫入文字可達128k位元組

#define mem_d_size 1024*10241m磁碟空間

#define disksize 1024磁碟塊的大小 1k

#define msd 5最大子目錄數 5

#define disk_num mem_d_size/disksize磁碟塊數目 1024=1m/1k

#define fatsize disk_num*sizeof(struct fatitem) //fat表大小1024*8=8k

#define mofn 5最大檔案開啟數 5

#define root_disk_no fatsize/disksize+1根目錄起始盤塊號 9

#define root_disk_size sizeof(struct direct根目錄大小 196

#define login 15

#define name_long 1

#define not_exsit -1

#define not_open -1

#define dir_full -2

#define open_full -3

#define already -4

#define not_r_w -4

#define disk_full -5

#define not_exit -1

struct fatitemsize 8

;struct direct

directitem[msd+2最大子目錄 5

};struct opentable

openitem[mofn最大檔案開啟數 5

int cur_size當前打檔案的數目

};struct fatitem *fatfat表

struct direct *root根目錄

struct direct *cur_dir當前目錄

struct opentable user_opentable檔案開啟表

int fd=-1檔案開啟表的序號

char *bufferdir記錄當前路徑的名稱

char *fdisk虛擬磁碟起始位址

int cur_user;

int find_n = 0;

void init();

void format();

void enter();

void assign();

int create(char *name);

int open(char *name);

int close(char *name);

int rename();

int write(int fd,char *buf,int len,char *name);

int read(int fd,char *buf,char *name);

int del(char *name);

void dir();

int login();

void helpmenu();

void currentpath();

2、filesystem.cpp

#include

#include

#include"conio.h"

#include "filesystem.h"

#include

int statue=0;

char user[20]="li";

char password[20]="123";

int main()

contect = (char *)malloc(max_write*sizeof(char));

if((fp=fopen("disk.bat","rb"))==null建立乙個檔案

else

}enter

//分析命令

while(1)

else if(strcmp(cmd,"model") == 0)

作業系統二級檔案管理課程設計

課程設計名稱 二級檔案管理系統 專業班級 軟體工程計083 1 學生姓名 李曉斌 學號 20082553103 指導教師 任滿傑 設計目的 通過具體的檔案儲存空間的管理 檔案的物理結構 目錄結構和檔案操作的實現,加深對檔案系統內部功能和實現過程的理解。設計內容 為linux系統設計乙個簡單二級檔案管...

績效管理課程設計

哈爾濱劍橋學院 工商管理學院 東方餃子王大堂經理績效管理體系設計 院系 工商管理學院 班級 11級人資 班 學號 1104430 姓名指導教師 設計時間 12月16日 20日 第一項崗位分析 一 企業簡介 1 1 要求 在校園內或附近尋找乙個經濟組織及內部某一崗位 最好是企業組織 對其進行分析。確定...

專案管理課程設計

目錄1 目的與要求 2 2 課程設計內容 2 1.1 制定專案計畫 2 1.2 專案管理的檢視和報表 2 1.3 資源管理 2 3 課程特色 2 4 課程設計步驟與方法 2 1.1 時間管理 3 1.2 資源管理 3 1.3 設計說明書正文內容 3 5 操作說明 3 6 成果展示 3 7 參考文獻 ...