资源简介
操作系统课程设计,一个模拟的文件系统的实现,可以读文件,写文件,创建文件,删除文件等,设计了inode节点。
代码片段和文件信息
#include
#include
#include
using namespace std;
#define ERROR -1
typedef struct
{
int s_isize; /* 外存Inode区占用的盘块数 */
int s_fsize; /* 盘块总数 */
int s_nfree; /* 直接管理的空闲盘块数量 */
int s_free[100]; /* 直接管理的空闲盘块索引表 */
int s_ninode; /* 直接管理的空闲外存Inode数量 */
int s_inode[100]; /* 直接管理的空闲外存Inode索引表 */
int s_fmod; /* 内存中super block副本被修改标志,意味着需要更新外存对应的Super Block */
int padding[47]; /* 填充使SuperBlock块大小等于1024字节,占据2个扇区 */
}filsys; /*管理块(超级块)的数据结构 */
typedef struct
{
unsigned int d_mode; /*状态标志位*/
int d_nlink; /*该文件在目录中不同文件名的数量*/
short d_uid; /*文件所有者的用户标识数*/
int d_size; /*文件大小,单位为字节*/
int d_addr[10]; /*文件逻辑块号和物理块号转换的基本索引表*/
}DiskInode; /*外村Inode节点的数据结构*/
typedef struct
{
static const int DIRSIZ = 28; /*目录项中路径部分的最大字符串长度*/
int m_ino; /*目录项中Inode编号*/
char m_name[DIRSIZ]; /*目录项中的路径名*/
}DirectoryEntry; /*目录项的数据结构*/
typedef struct
{
char m_name[8]; /*用户名*/
char pathword[24]; /*密码*/
}usrinformation; /*用户信息的数据结构*/
typedef struct
{
unsigned int i_mode; /*状态标志位*/
int i_nlink; /*该文件在目录中不同文件名的数量*/
short i_uid; /*文件所有者的用户标识数*/
int i_size; /*文件大小,单位为字节*/
int i_addr[10]; /*文件逻辑块号和物理块号转换的基本索引表*/
int i_time; /*该内存i节点多长时间没有使用*/
char name[50]; /*上次使用该i节点的文件名*/
int i_number; /*外存Inode区中的编号*/
}Inode; /*内存Inode的数据结构*/
typedef struct
{
unsigned int f_flag; /*对打开文件的读写操作要求*/
Inode *f_inode; /*指向打开文件的内存Inode指针*/
int f_offset; /*文件读写位置指针*/
}Mfile; /*file的数据结构*/
Inode nInode[6];
Mfile mfile;
int initialize();
void ls(char *path);
int pathinode(char *path);
int MyCreat(char *filenameint mode);
int MyOpen(char *filenameint mode);
int MyClose(Mfile *mfp);
void MySeek(int position);
int MyRead(Mfile *mfpchar *bufint length);
int MyWrite(Mfile *mfpchar *bufint length);
int MyDelete(char *filename);
int login(char *namechar *pathword);
int Cnewusr(char *namechar *pathword);
int Cnewusrfile(char *name);
int main()
{
for(int i = 0;i < 6;i++)
{
nInode[i].i_time = 0;
strcpy(nInode[i].name“-1“);
}
initialize();
hin:
int j = 0;
while(j == 0)
{
char usrname[8] = {“/“};
char pathword[28] = {“/“};
cout << “***************************\n“
<< “ 0.登录用户\n“
<< “ 1.创建用户\n“
<< “ 2.退出\n“
<< “***************************“
<< endl;
cin >> j;
if(j == 2)
{
goto abc;
}
cout << “用户名:“;
cin >> usrname;
cout << “密码:“;
cin >> pathword;
if(j == 1)
{
j = Cnewusr(usrnamepathword);
Cnewusrfile(usrname);
}
else if(j == 0)
{
j = login(usrnamepathword);
}
}
int i = 0;
cout << “*********************************\n“
<< “ 0.initialize\n“
<< “ 1.ls\n“
<< “ 2.creat\n“
<< “ 3.open\n“
<< “ 4.close\n“
<< “ 5.seek\n“
<< “ 6.read\n“
<< “ 7.write\n“
<< “ 8.delete\n“
<< “ 9.logout\n“
<< “*********************************“ << e
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 215040 2015-07-16 19:57 操作系统.doc
文件 51200 2015-07-16 19:57 文件管理\Debug\MyDisk.img
文件 78848 2015-07-16 19:57 文件管理\Debug\文件管理.exe
文件 484636 2015-07-16 19:57 文件管理\Debug\文件管理.ilk
文件 732160 2015-07-16 19:57 文件管理\Debug\文件管理.pdb
文件 44564480 2015-07-16 20:00 文件管理\ipch\文件管理-c3e4548e\文件管理-ff7a22b0.ipch
文件 1214 2015-07-16 19:57 文件管理\文件管理\Debug\cl.command.1.tlog
文件 31770 2015-07-16 19:57 文件管理\文件管理\Debug\CL.read.1.tlog
文件 730 2015-07-16 19:57 文件管理\文件管理\Debug\CL.write.1.tlog
文件 2430 2015-07-16 19:57 文件管理\文件管理\Debug\li
文件 5086 2015-07-16 19:57 文件管理\文件管理\Debug\li
文件 1274 2015-07-16 19:57 文件管理\文件管理\Debug\li
文件 918 2015-07-16 19:57 文件管理\文件管理\Debug\mt.command.1.tlog
文件 1514 2015-07-16 19:57 文件管理\文件管理\Debug\mt.read.1.tlog
文件 570 2015-07-16 19:57 文件管理\文件管理\Debug\mt.write.1.tlog
文件 822272 2015-07-16 19:57 文件管理\文件管理\Debug\vc100.idb
文件 299008 2015-07-16 19:57 文件管理\文件管理\Debug\vc100.pdb
文件 381 2015-07-16 19:57 文件管理\文件管理\Debug\文件管理.exe.intermediate.manifest
文件 62 2015-07-16 19:57 文件管理\文件管理\Debug\文件管理.lastbuildstate
文件 18333 2015-07-16 19:57 文件管理\文件管理\Debug\文件管理.log
文件 150045 2015-07-16 19:57 文件管理\文件管理\Debug\文件管理.obj
文件 713 2015-07-16 19:57 文件管理\文件管理\Debug\文件管理.vcxprojResolveAssemblyReference.cache
文件 0 2015-07-16 19:57 文件管理\文件管理\Debug\文件管理.write.1.tlog
文件 51200 2015-07-16 19:57 文件管理\文件管理\MyDisk.img
文件 25198 2015-07-16 19:57 文件管理\文件管理\文件管理.cpp
文件 3230 2015-07-16 19:57 文件管理\文件管理\文件管理.vcxproj
文件 950 2015-07-16 19:57 文件管理\文件管理\文件管理.vcxproj.filters
文件 143 2015-07-16 19:57 文件管理\文件管理\文件管理.vcxproj.user
文件 27611136 2015-07-16 20:00 文件管理\文件管理.sdf
文件 903 2015-07-16 19:57 文件管理\文件管理.sln
............此处省略9个文件信息
- 上一篇:Unity 红蓝 3D 插件
- 下一篇:飞思卡尔官方例程
相关资源
- linux2.6.1内核源码注释
- 加州伯克利大学操作系统 讲义
- 操作系统BIOS设计
- 操作系统概念英文版第七版.pdf
- 报刊订阅系统(需联网).rar
- 嵌入式FAT32文件系统设计与实现--振南
- Linux内核设计的艺术:图解Linux操作系
- 哈工大张英涛教授操作系统PPT课件
- 机器人操作系统浅析ROS肖军浩译
- 迷宫 课程设计
- 《自己动手写操作系统》光盘内容以
- 火车订票系统数据库课程设计
- 数电课程设计报告-四人智力竞赛抢答
- 操作系统:精髓与设计原理高清第七
- 四川大学数据结构课程设计四个实验
- 嵌入式操作系统基础μCOS-2和Linux(第
- 《操作系统考研辅导教程》
- 《操作系统真象还原》pdf
- 《计算机操作系统(第4版)汤小丹》
- 软件工程课程设计报告(包附源代码
- 课程设计脉搏计设计,电路图及其详
- 二级减速器课程设计Design.zip
- 电磁场与微波课程设计北理工
- 云南大学831数据结构与操作系统2003、
- 《老码识途-从机器码到框架的系统观
- 基于ios的视频播放器
- 振南znFAT--嵌入式FAT32文件系统设计与
- 嵌入式操作系统风云录 历史演进与物
- 数据重现 文件系统原理精解与数据恢
- 基于嵌入式实时操作系统的程序设计
评论
共有 条评论