资源简介
编程模拟一个简单的文件系统,实现文件系统的管理和控制功能。文件系统源代码流程图齐全~可用
代码片段和文件信息
#include
#include
using namespace std;
//TEXTLOG为0时不输出记录文件,否则输出记录文件RunlogFS1.txt
#define TEXTLOG 1
const int MAXUSERNUM = 10; //最大用户数
const int MAXUSERFILE = 10; //每个用户最大保存文件数
const int MAXOPENFILE = 5; //每个用户最大打开文件数
const int MAXFILENAME = 10; //文件名最大长度
const int MAXUSERNAME = 15; //用户名最大长度
struct UFD //用户文件目录
{
char filename[MAXFILENAME + 1]; //文件名
int sign; //保护码 只用最低3位 由高位到低位分别为:可读 可写 可执行
int size; //文件长度
int maxsize; //文件最大长度
};
enum STAUS {HOLD FREE}; //状态:占用和空闲
struct AFD //运行文件目录
{
char filename[MAXFILENAME + 1]; //文件名
int sign; //保护码
int readpointer; //读指针
int writepointer; //写指针
STAUS state; //AFD状态
};
struct MFD //主文件目录
{
char username[MAXUSERNAME + 1]; //用户名
UFD *ufd; //用户文件目录(当数组用)
int ufdnum; //用户文件数量
AFD *afd; //用户打开文件目录(当数组用)
int afdnum; //用户打开文件数量
};
MFD user[MAXUSERNUM];
int usernum = 0; //用户数目
char username[MAXUSERNAME + 1]; //当前操作用户名
int id; //当前操作用户的下标
char filename[MAXFILENAME + 1]; //当前操作文件名
int pos; //当前操作文件的下标
int afdpos; //当前文件afd下标
int ch;
#if TEXTLOG
FILE *txtlog; //文本文档形式输出日志文件指针
#endif
bool Checkinmfd(); //检查用户名是否存在mfd中
bool Checkinufd(); //检查文件名是否存在ufd中
bool Checkinafd(); //检查文件名是否存在afd中
void Createuser(); //创建用户
void Deleteuser(); //删除用户(忽略保护码作用)
void Oprmenu(); //操作菜单
void Create(); //创建文件
void Delete(); //删除文件
void Open(); //打开文件
void Close(); //关闭文件
void Read(); //读文件
void Write(); //写文件
void Print(); //打印文件状态
int main()
{
bool firsttime = true;
#if TEXTLOG
txtlog = fopen(“RunlogFS1.txt“ “w“);
fprintf(txtlog “##############################################################\n“);
fprintf(txtlog “File management system\n“);
fprintf(txtlog “Programmer: Jobs Peng\n“);
fprintf(txtlog “Date: 1 / 6 / 2012\n“);
fprintf(txtlog “Note: The program has no input-error-debugger.\n“);
fprintf(txtlog “##############################################################\n\n“);
#endif
printf(“##############################################################\n“);
printf(“File management system\n“);
printf(“Programmer: Jobs Peng\n“);
printf(“Date: 1 / 6 / 2012\n“);
printf(“Note: The program has no input-error-debugger.\n“);
printf(“##############################################################\n\n“);
while (true)
{
Print();
while (true)
{
if (!firsttime)
{
while ((ch = getchar()) != ‘\n‘);
}
else
{
firsttime = false;
}
printf(“1.Create user 2.Delete user 3.Operate 4.Exit You want: “);
ch = getchar();
if (ch >= ‘1‘ && ch <= ‘4‘)
{
break;
}
else
{
printf(“Input Error!
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 21093 2012-05-23 00:39 实验4\1文件系统.cpp
文件 278620 2012-05-23 00:40 实验4\1文件系统.exe
文件 59083 2012-05-23 00:41 实验4\sample RunlogFS1.txt
文件 50176 2010-11-16 23:24 实验4\流程图1.0.vsd
文件 51200 2010-11-21 16:08 实验4\流程图1.1.vsd
文件 44544 2010-11-21 16:09 实验4\流程图1.2.vsd
文件 56832 2010-11-21 16:10 实验4\流程图1.3.vsd
文件 51200 2010-11-21 16:07 实验4\流程图2.1.vsd
文件 56320 2010-11-21 16:18 实验4\流程图2.2.vsd
文件 59392 2010-11-21 16:29 实验4\流程图2.3.vsd
文件 54784 2010-11-21 16:32 实验4\流程图2.4.vsd
文件 59392 2010-11-21 16:36 实验4\流程图2.5.vsd
文件 59392 2010-11-21 16:38 实验4\流程图2.6.vsd
目录 0 2012-05-23 22:18 实验4
----------- --------- ---------- ----- ----
902028 14
- 上一篇:Labview三次样条拟合轨迹规划
- 下一篇:易语言写彩票软件教程
相关资源
- 3种不同语言的BP算法
- 冒险岛吸怪无敌 源码
- API函数大全(中文)
- 华中科技大学操作系统课程设计——
- 操作系统银行家算法 js网页实现
- Robocup2d的官方说明书
- 操作系统名词解释与简答题
- 计算机考研操作系统题库
- 点云数据ply格式
- 操作系统概念第七版答案(含编程代
- Operating System Concepts 7th Edition 课后答案
- 图像亮度调整源代码
- 高斯平滑源代码
- 点云pcd与txt之间的转换
- 日文操作系统 xp 迅雷种子
- 分层建立多叉树及分层遍历输出
- 自考02326操作系统2018版课后习题答案
- 操作系统课程设计之系统调用返回时
- 操作系统 课程设计 实现生产者消费者
- Nachos虚存页面置换算法
- 模拟操作系统实验报告
- 缓冲池 操作系统课设
- 操作系统课设计 SPOOLing系统
- 操作系统之文件系统设计一个n 个用户
- 计算机操作系统课后答案
- 获取操作系统、CPU、内存、硬盘等系
- linux操作系统第二版 习题答案
- 操作系统实验-模拟进程调度
- GB_T 25645-2010 信息技术 中文Linux服务器
- 《操作系统概念》第七版1-13章答案含
评论
共有 条评论