• 大小:
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-24
  • 语言: 其他
  • 标签:

资源简介

操作系统课程设计报告-单用户多级文件系统设计

资源截图

代码片段和文件信息


#include 
#include 
#include 

#define DIR_LENGTH  1024      //路径最长可达1024字节
#define MAX_WRITE 1024*128    //写入文字可达128k字节      
#define DISKSIZE 1024         //磁盘快的大小 1K
#define MSD   5               //最大子目录数 5 (类似五叉树)
#define DISK_NUM 1024*1024/DISKSIZE  //盘块数目
#define FATSIZE  DISK_NUM*sizeof(struct fatitem) //FAT表大小
#define MOFN  5               //最大文件打开数 5 (即除根以外最大深度为5)
#define ROOT_DISK_NO FATSIZE/DISKSIZE+1  //根目录起始盘块号 9
#define ROOT_DISK_SIZE sizeof(struct direct)//根目录大小 196 

//目录结构
struct direct
//文件控制块信息
{
struct FCB
{
char name[9];  //文件/目录名 8位
char property;  //属性 1位目录 0位普通文件
int size;   //文件/目录字节数(原注释位盘块数)
int firstdisk;  //文件/目录 起始盘块号
int next;   //子目录起始盘块号
int sign;   //1是根目录 0不是根目录

}directitem[MSD+2];

};

//FAT表结构

struct fatitem
{
int item;  //存放文件下一个磁盘的指针
char em_disk; //磁盘块是否空闲标志位 0表示空闲
};

//文件打开表结构
struct opentable
{
struct openttableitem
{
char name[9]; //文件名
int firstdisk; //起始盘块号 
int size;  //文件的大小
}openitem[MOFN];
int cur_size;  //当前打文件的数目
};

struct fatitem *fat;   //FAT表
struct direct *root;   //根目录
struct direct *cur_dir;   //当前目录
struct opentable u_opentable; //文件打开表
int  fd=-1;     //文件打开表的序号
char *bufferdir;    //记录当前路径的名称
char *fdisk;     //虚拟磁盘起始地址

void initsystem();
void format();
void enter();
void exit();
int create(char *name);
int open(char *name);
int close(char *name);
int write(int fdchar *bufint len);
int read(int fdchar *buf);
int del(char *name);
int mkdir(char *name);
int rmdir(char *name);
void dir();
int cd(char *name);
void print();
void showpath();
//初始化文件系统
void initsystem()
{
fdisk = (char *)malloc(1024*1024*sizeof(char)); //申请 1M空间
format();
free(fdisk);
}
//格式化
void format()
{
int i;
FILE *fp;

fat = (struct fatitem *)(fdisk+DISKSIZE); //计算FAT表地址
//初始化FAT表
fat[0].item=-1;  //引导块
fat[0].em_disk=‘1‘;

for(i=1;i {
fat[i].item=i+1;
fat[i].em_disk=‘1‘;  
}

fat[ROOT_DISK_NO-1].item=-1;
fat[ROOT_DISK_NO-1].em_disk=‘1‘;
fat[ROOT_DISK_NO].item=-1;  //存放根目录的磁盘块号
fat[ROOT_DISK_NO].em_disk=‘1‘;

for(i=ROOT_DISK_NO+1;i {
fat[i].item = -1;
fat[i].em_disk = ‘0‘;  
}
root = (struct direct *)(fdisk+DISKSIZE+FATSIZE); //根目录的地址
//初始化目录
//指向当前目录的目录项
root->directitem[0].sign = 1;
root->directitem[0].firstdisk = ROOT_DISK_NO;
strcpy(root->directitem[0].name“.“);
root->directitem[0].next = root->directitem[0].firstdisk;
root->directitem[0].property = ‘1‘;
root->directitem[0].size = ROOT_DISK_SIZE;
//指向上一级目录的目录项
root->directitem[1].sign = 1;
root->directitem[1].firstdisk = ROOT_DISK_NO;
strcpy(root->directitem[1].name“..“);
root->directitem[1].next = root->directitem[0].firstdisk;
root->directitem[1].property = ‘1‘;
root->directitem[1].size = ROOT_DISK_SIZE;

for(i=2;i {
root->directitem[i].sign = 0;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件    1048576  2011-03-23 15:37  操作系统课程设计报告-单用户多级文件系统设计\单用户文件系统\Debug\disk.dat

     文件     188513  2011-03-23 15:36  操作系统课程设计报告-单用户多级文件系统设计\单用户文件系统\Debug\FileSystem.exe

     文件     201604  2011-03-23 15:36  操作系统课程设计报告-单用户多级文件系统设计\单用户文件系统\Debug\FileSystem.ilk

     文件      47450  2011-03-23 15:36  操作系统课程设计报告-单用户多级文件系统设计\单用户文件系统\Debug\FileSystem.obj

     文件     222688  2011-03-09 16:09  操作系统课程设计报告-单用户多级文件系统设计\单用户文件系统\Debug\FileSystem.pch

     文件     484352  2011-03-23 15:36  操作系统课程设计报告-单用户多级文件系统设计\单用户文件系统\Debug\FileSystem.pdb

     文件      33792  2011-03-23 15:36  操作系统课程设计报告-单用户多级文件系统设计\单用户文件系统\Debug\vc60.idb

     文件      53248  2011-03-23 15:36  操作系统课程设计报告-单用户多级文件系统设计\单用户文件系统\Debug\vc60.pdb

     文件    1048576  2011-03-21 20:35  操作系统课程设计报告-单用户多级文件系统设计\单用户文件系统\disk.dat

     文件      25124  2011-04-19 12:42  操作系统课程设计报告-单用户多级文件系统设计\单用户文件系统\FileSystem.cpp

     文件       3449  2011-03-09 16:10  操作系统课程设计报告-单用户多级文件系统设计\单用户文件系统\FileSystem.dsp

     文件        545  2011-03-09 16:10  操作系统课程设计报告-单用户多级文件系统设计\单用户文件系统\FileSystem.dsw

     文件      50176  2011-04-19 12:56  操作系统课程设计报告-单用户多级文件系统设计\单用户文件系统\FileSystem.ncb

     文件      53760  2011-04-19 12:56  操作系统课程设计报告-单用户多级文件系统设计\单用户文件系统\FileSystem.opt

     文件        256  2011-04-19 12:45  操作系统课程设计报告-单用户多级文件系统设计\单用户文件系统\FileSystem.plg

     文件    1048576  2011-04-19 16:46  操作系统课程设计报告-单用户多级文件系统设计\单用户文件系统\Release\disk.dat

     文件      57344  2011-04-19 12:42  操作系统课程设计报告-单用户多级文件系统设计\单用户文件系统\Release\FileSystem.exe

     文件      31919  2011-04-19 12:42  操作系统课程设计报告-单用户多级文件系统设计\单用户文件系统\Release\FileSystem.obj

     文件     223000  2011-04-19 12:42  操作系统课程设计报告-单用户多级文件系统设计\单用户文件系统\Release\FileSystem.pch

     文件      33792  2011-04-19 12:45  操作系统课程设计报告-单用户多级文件系统设计\单用户文件系统\Release\vc60.idb

     文件     150528  2011-03-21 20:54  操作系统课程设计报告-单用户多级文件系统设计\单用户文件系统\单用户文件系统.doc

     文件    1232896  2012-05-17 11:11  操作系统课程设计报告-单用户多级文件系统设计\操作系统课程设计演示文稿.ppt

     文件     293888  2012-05-17 11:10  操作系统课程设计报告-单用户多级文件系统设计\课程设计总结.doc

     目录          0  2012-05-17 11:10  操作系统课程设计报告-单用户多级文件系统设计\单用户文件系统\Debug

     目录          0  2012-05-17 11:10  操作系统课程设计报告-单用户多级文件系统设计\单用户文件系统\Release

     目录          0  2012-05-17 11:10  操作系统课程设计报告-单用户多级文件系统设计\单用户文件系统

     目录          0  2012-05-17 11:11  操作系统课程设计报告-单用户多级文件系统设计

----------- ---------  ---------- -----  ----

              6534052                    27



............此处省略0个文件信息

评论

共有 条评论

相关资源