资源简介
包含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
- 上一篇:北航软件学院复试专业基础
- 下一篇:RF天线设计
相关资源
- Trojan-Qt5-Windows-0.0.4.rar
- 酒店管理系统基于Qt Creator5)
- Python全栈学习笔记面向对象大作业:
- vtk QT做的三维地质可视化系统2of2
- Qt局域网聊天软件
- Qt Creator opengl实现四元数鼠标控制轨迹
- QT局域网聊天系统(基于QT5.修改过)
- qt-电子点菜系统
- 西安电子科技大学 并行计算 霍红卫
- 自己写的航空订票系统c 版--数据结构
- C 餐厅叫号系统(QT平)
- QT 实现文件下载
- qt图像处理
- QT,JPEG解码源代码(已完成)
- 北航人工智能原理课大作业源代码,
- MFC绘图小软件源代码(可当VC大作业用
- 电梯模拟程序C/C 算法实现
- Qt 播放音频文件
- Qt 读取16进制的data文件
- MQTT+串口(usart)透传
- 易语言QQTEA算法源码
- VC工程转Qt工程文件的工具
- MQTT推送Demo
- 基于Linux、QT的视频监控系统的设计与
- Qt 百度地图 定位
- 雷达系统仿真大作业
- QT酷炫界面开发指南《QmlBook》
- Ubuntu下操作Excel,qt代码
- Qt图片浏览器 --基于Qt的Graphics View f
- qtnribbon2破解
评论
共有 条评论