⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 file.h

📁 一个内含进程管理、内存管理、文件管理的操作系统设计实现方案
💻 H
字号:
//file.h
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define DIR_LENGTH  30     /*路径最长可达512字节*/
#define MAX_WRITE 125*64   /*写入文字可达128k字节*/      
#define MEM_D_SIZE 64*128    /*8K磁盘空间*/
#define DISKSIZE 64     /*磁盘块的大小64B*/
#define MSD  8    /*最大子目录数 8*/
#define DISK_NUM MEM_D_SIZE/DISKSIZE  /*磁盘块数目 128=8192B/64B*/
#define FATSIZE  DISK_NUM*sizeof(struct fatitem) /*FAT表大小 128B */
#define MOFN  10     /*最大文件打开数 10 (即除根以外最大深度为5)*/
#define ROOT_DISK_NO FATSIZE/DISKSIZE  /*根目录起始盘快号 2*/
#define ROOT_DISK_SIZE sizeof(struct direct)/*根目录大小64B*/ 

/*---------------FAT表项结构-----------------------*/

struct fatitem  /* size 1*/
{
	char item; /*存放文件下一个磁盘的指针,磁盘块是否空闲标志位 -1空闲, 0 文件结束*/
};

/*-------------------目录项结构------------------------*/
struct FCB
{
   char name[3];  /*文件/目录名 3位*/
   char property;  /*属性 1位目录 0位普通文件*/
   char extend_name; /*文件扩展名*/
   char firstdisk;  /*文件/目录 起始盘块号*/
   short size;   /*文件/目录字节数*/
};
struct direct  /* size 64*/
{
	/*-----文件控制快信息-----*/
	struct FCB directitem[MSD];
};

/*------------------文件打开表项结构--------------------------*/

struct openttableitem /* size 8*/
{
	char name[7]; /*文件名*/
	char firstdisk; /*起始盘块号*/ 
	short size;  /*文件的大小*/
};
struct opentable   /* size 31*/
{
	 struct openttableitem  openitem[MOFN];
	 int cur_size;  /*当前打文件的数目*/
};


///////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////

/*-------------------------------------------------------------------*/
struct fatitem *fat;   /*FAT表*/
struct direct *root;   /*根目录*/
struct direct *cur_dir;   /*当前目录*/
char  curdir_block;
struct opentable u_opentable; /*文件打开表*/
int  fd=-1;     /*文件打开表的序号*/

char *fdisk;     /*虚拟磁盘起始地址*/
FILE *fp;
 char a[10];

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -