资源简介

包含qt完整的工程目录以及原始的一份控制台源码。代码有问题可以评论。 1、实验目的 通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。 2、实验内容 为linux系统设计一个简单的二级文件系统。要求做到以下几点: (1)可以实现下列几条命令(至少4条); login 用户登陆 dir 列文件目录 create 创建文件 delete 删除文件 open 打开文件 close 关闭文件 read 读文件 write 写文件 (2)列目录时要列出文件名、物理地址、保护码和文件长度; (3)源文件可以进行读写保护。 3、实验提示 (1)首先应确定文件系统的数据结构:主目录、子目录及活动文件等。主目录和子目录都以文件的形式存放于磁盘,这样便于查找和修改。 (2)用户创建的文件,可以编号存储于磁盘上。如file0,file1,file2...并以编号作为物理地址,在目录中进行登记。

资源截图

代码片段和文件信息

#include
#include
#include
#include
#include
#include 
#include 
#include 
#define MaxUser 1028    //用户最多数目
#define commandAmount 12     //对文件操作的指令数
//用户管理
int userID = -1; //用户登录的ID号,值为-1时表示没有用户登录
char Name[15];     //正在登录用户名
char firstName[5]; //正在被操作的文件
long used = 0;    //全局变量,用户数
long used1 = 0;    //全局变量,用户创建文件数
char q2[20] = “file/node/“;
typedef struct master_file_directory
{
char userName[15];
char password[15];
} MFD;
MFD userTable[MaxUser];

typedef struct node {
char fileName[15];
char number[5];
//UFD *user;
} MFD1;
MFD1 fileTable[1024];

void userCreate();   //创建用户
int login();   //用户登录
int createDirectory(const char*filename);//创建目录
void fileAttribute(char*fileName);//文件属性
void readDir1();//读用户
void create(char*name); //创建文件
void deletefile(const char*filename);//删除文件
int openfile(char*name);//打开文件
void writefile(char name[] char*buf);//写文件
void readfile(char name[]);//查看文件内容
void closefile(int fd);
void userCreate();//创建用户
int login();//用户登录
void createfile(char name[] char kind[]);//创建文件
void reFileName(char*old char*new);//文件重命名
void chmodfile(char name[] char kind[]);//修改文件权限
int main() {

char order[commandAmount][10];
strcpy(order[0] “create“);
strcpy(order[1] “delete“);
strcpy(order[2] “read“);
strcpy(order[3] “write“);
strcpy(order[4] “arr“);
strcpy(order[5] “chmod“);
strcpy(order[6] “ren“);
strcpy(order[7] “dir“);
strcpy(order[8] “return“);
strcpy(order[9] “exit“);
strcpy(order[10] “diru“);
strcpy(order[11] “delu“);
char command[1028] command_str1[10] command_str2[10] command_str3[1028];
int i k j;
int length;
createDirectory(“file“);
createDirectory(“file/node“);
create(“file/user.txt“);
long used;
struct stat d;
stat(“file/user.txt“ &d);
d.st_size;
used = (d.st_size) / 30l;

FILE *fp;

if ((fp = fopen(“file/user.txt“ “r“)) == NULL)

{
printf(“cannot open this file\n“);

exit(0);

}
fread(userTable sizeof(struct master_file_directory) used fp);

fclose(fp);
    if(used==0)
    {
     strcpy(userTable[0].userName“root“);
            strcpy(userTable[0].password“root“);

     char q[20] = “file/“;
     char q2[20] = “file/node/“;
     strcat(q userTable[0].userName);
     strcat(q2 userTable[0].userName);
     createDirectory(q);
     create(q2);
     used++;
     FILE *fp;
     if ((fp = fopen(“file/user.txt“ “w“)) == NULL)

     {
     printf(“cannot open this file\n“);

     exit(0);

     }
     fwrite(userTable sizeof(struct master_file_directory) used fp);
     fclose(fp);

    }


int g = 0;
while (g == 0) {
printf(“********************************************\n“);
printf(“                  1、login\n“);
printf(“                  2、register\n“);
    printf(“                  3、exit\n“);
printf(“********************************************\n“);
printf(“Please chooce the function key:>“);
int choice;
scanf(“%d“ &choice);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-08-16 11:00  linux系统下的二级文件系统\
     文件       17437  2012-02-19 20:01  linux系统下的二级文件系统\file.c
     文件         162  2018-08-16 11:00  linux系统下的二级文件系统\~$作系统》课程实验报告.doc
     文件     1775104  2012-03-15 20:32  linux系统下的二级文件系统\《操作系统》课程实验报告.doc
     文件       11771  2018-08-14 09:32  大作业--文件系统设计.docx
     目录           0  2018-08-21 06:58  源码\
     目录           0  2018-08-20 08:03  源码\filesystem\
     文件        1356  2018-08-20 08:00  源码\filesystem\createfile.cpp
     文件         468  2018-08-20 08:00  源码\filesystem\createfile.h
     文件        2536  2018-08-20 06:24  源码\filesystem\createfile.ui
     文件        1274  2018-08-20 07:48  源码\filesystem\filesystem.pro
     文件       24087  2018-08-20 08:03  源码\filesystem\filesystem.pro.user
     文件        2375  2018-08-20 07:41  源码\filesystem\logindialog.cpp
     文件         445  2018-08-20 08:00  源码\filesystem\logindialog.h
     文件        2831  2018-08-16 19:17  源码\filesystem\logindialog.ui
     文件         609  2018-08-20 08:00  源码\filesystem\main.cpp
     文件        5837  2018-08-20 08:00  源码\filesystem\Mainfun.cpp
     文件        1418  2018-08-20 08:00  源码\filesystem\Mainfun.h
     文件        6524  2018-08-20 08:00  源码\filesystem\mainwindow.cpp
     文件         800  2018-08-20 07:27  源码\filesystem\mainwindow.h
     文件        2867  2018-08-20 07:17  源码\filesystem\mainwindow.ui
     文件         608  2018-08-20 07:48  源码\filesystem\manangerdialog.ui
     文件         859  2018-08-20 07:02  源码\filesystem\readdialog.cpp
     文件         405  2018-08-20 06:50  源码\filesystem\readdialog.h
     文件         768  2018-08-20 07:10  源码\filesystem\readdialog.ui
     文件         493  2018-08-20 08:00  源码\filesystem\writedialog.cpp
     文件         390  2018-08-20 05:38  源码\filesystem\writedialog.h
     文件         853  2018-08-20 05:11  源码\filesystem\writedialog.ui

评论

共有 条评论