资源简介

操作系统课程设计,一个模拟的文件系统的实现,可以读文件,写文件,创建文件,删除文件等,设计了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\link.command.1.tlog

     文件       5086  2015-07-16 19:57  文件管理\文件管理\Debug\link.read.1.tlog

     文件       1274  2015-07-16 19:57  文件管理\文件管理\Debug\link.write.1.tlog

     文件        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个文件信息

评论

共有 条评论