/* user.h */ pragma once #include
class user { public: char userName[10]; //用户名 int userID; //用户ID int priority; char password[10];
int group; user();
~user(); };
/* user.cpp */ #include\
user::user() { strcpy(userName,\); userID=-1; priority=1;
strcpy(password,\); }
user::~user() { }
/* memory.h */ pragma once
class memory { public:
char data[64]; memory();
~memory(); };
//用户权限//密码 //用户组
/* memory.cpp */ #include\
memory::memory() { }
memory::~memory() { }
/* iNode.h */ #pragma once #include
class iNode { };
/* iNode.cpp */ #include\#include
iNode::iNode() {
fileStyle=-1; //-普通文件0;d目录文件1;b块设备文件2;c字符设备文件3;|链接文件 fileMod=-1;
iNode(); ~iNode(); public:
int fileStyle; //文件类型0为目录文件,为正规文件
int fileMod; //文件权限0为可读,为可写,为可读写,3为可读可执行,为可写可int fileAddress[13]; //文件存储的物理块 int fileLength;
//文件长度
int fileAssociated; //关联文件数 time_t modifyTime; //文件修改时间 char fileOwner[10]; //文件拥有者 int fileGroup;
//文件所属组
for(int i=0; i<64; i++)
data[i]='\\0';
执行,为可读写可执行
for(int i=0; i<13; i++)
fileAddress[i]=-1; fileLength=0; fileAssociated=0; time (&modifyTime); strcpy(fileOwner,\); fileGroup=0;;
}
iNode::~iNode() { }
/* directory.h */ #pragma once
class directory { public: char fileName[256]; int directoryID;
int parentID; directory();
~directory(); };
/* directory.cpp */ #include\#include
directory::directory() { strcpy(fileName,\); directoryID=-1; parentID=-1;
}
directory::~directory() { }
//文件名 //文件i节点号 //文件父节点号
/*superBlock.h */ #pragma once
class superBlock { };
/*superBlock.cpp */ #include\
superBlock::superBlock() { }
superBlock::~superBlock() { }
/ fileOS.cpp : 定义控制台应用程序的入口点。 //
#include \#include \#include \#include \#include \#include \#include
int i;
for( i=0; i<512; i++)
bitMap[i]=0; //0时空闲,时占用 freeINode[i]=0; //0时空闲,时占用 for( i=0; i<256; i++) freeBitNum=512;
superBlock(); ~superBlock(); public:
int bitMap[512]; //位示图,空闲,占用 int freeBitNum; //空闲盘块数 int freeINode[256]; //空闲节点
#include #include
#define MAX_USER_NUM 10 #define PWDSIZ 10 using namespace std;
active_inode* act_inode_list[LIST]; int sys_list[LIST] ;
int * user_list[MAX_USER_NUM] ; block * memory[MEM_NUM]; super_block superblock; i_node * inode[NODE_NUM]; dir * direct[DIR_NUM]; //内存块初始化; void init() {
} }
for (int i=0;i user_list[i]=NULL; } for (int i =0;i for (int i =0;i direct[i]=new dir; //初始化目录项; inode[i]=new i_node;//初始化i节点 for (int i=0;i memory[i]= new block;// 初始化盘块