文件管理系统源代码
时间:2025-07-15
时间:2025-07-15
操作系统课程设计之文件管理系统源代码,该代码能正确无误运行,显示正确结果,具有很大的参考学习价值。
文件管理系统
一、实验目的
通过设计一个多用户文件系统,了解操作系统中文件的组织与管理,熟悉文件管理所用的数据结构,加深对文件系统内部功能实现过程的理解。
二、实验内容
1.用C语言或C++语言设计一个最多包括N个用户的多用户文件系统,约定每个用户最多保存M个文件。同时限制一个用户在进入系统后,最多打开L个文件。
2.系统应具备一定的健壮性。即能够检查用户所输入命令的正确性,出错时显示出必要的信息。另外,对文件需设置必要的保护措施。
3.文件目录结构采用两级目录结构:主文件目录和用户文件目录
#include"io.h"
#include"conio.h"
#include"stdio.h"
#include"stdlib.h"
#include"malloc.h"
#include"string.h"
#include"ctype.h"
#define N 30 /*用户数*/
#define M 20 /*一个用户可保存M个文件*/
#define L 5 /*用户只能一次打开L个文件*/
typedef struct MFD /*主文件目录*/
{
char username[100];
char password[100];
FILE fp; /*文件指针*/
}MFD;
///////////
typedef struct UFD /*用户文件目录*/
{
char filename[256];
char protect; /*保护码*/
int length; /*文件长度*/
}UFD;
//////////
typedef struct OFD /*打开文件目录*/
{
char filename[256];
char opencode; /*打开保护码*/
int fp; /*读写指针*/
}OFD;
操作系统课程设计之文件管理系统源代码,该代码能正确无误运行,显示正确结果,具有很大的参考学习价值。
//////////
typedef struct COMM /*命令串*/
{
char string[256]; /*命令*/
struct COMM *next;/*后继指针*/
}COMM;
////////////
MFD mainfd[N]; /*主文件目录数组*/
UFD userfd[M]; /*用户文件目录数组*/
OFD openfd[L]; /*打开文件目录数组*/
////////
COMM*command; /*命令串指针*/
char username[10];
int usernum,savenum,opennum;
int workfile;
void init();
void init_ufd(char *username);/*初始化用户文件目录*/
void mesg(char *str); /*消息*/
char *getpass(); /*设置口令函数声明*/
char *getuser(); /*设置用户函数声明*/
COMM *readcommand(); /*读命令串函数声明*/
void login(); /*用户登录*/
void logout(); /*用户注销*/
void setpass(); /*设置口令*/
void create(); /*创建文件*/
void mydelete(); /*删除文件*/
void myread(); /*读文件*/
void myopen(); /*打开文件*/
void myclose(); /*关闭文件*/
void mywrite(); /*写文件*/
void help(); /*帮助*/
void dir(); /*列文件目录*/
void mycopy(); /*复制文件*/
void myrename(); /*重命名文件名*/
/////////////
void main()
{
init();
for(;;)
{
readcommand();
if(strcmp(command->string,"create")==0)
create();
else if(strcmp(command->string,"delete")==0)