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

📄 filesystem.h

📁 文件fat系统的实现在内存中的一种模拟方式
💻 H
字号:
/********************************************************************
	created:	2006/12/15
	created:	15:12:2006   20:20
	filename: 	F:\课程资料\操作系统\程序\myFilesystem\filesystem.h
	file path:	F:\课程资料\操作系统\程序\myFilesystem
	file base:	filesystem
	file ext:	h
	author:		yang
	
	purpose:	文件系统数据结构
*********************************************************************/
#include "typedef.h"

#ifndef _FILESYS
#define	_FILESYS

//文件控制块结构(16字节)
typedef struct _tagfcb {
	char f_name[8];		//文件名
	int	 f_size;		//文件长度
	int	 f_firstblock;	//起始块号
}FCB,*PFCB,**PPFCB;

/********************************************************************
FAT结构
使用1个字节(8位)表示一个块号,最多可以表示256块
cluster值:
	0x00 : 空闲
	0xFF : 文件的最后一块
	其它值 : 文件的下一块块号
*********************************************************************/
typedef struct _tagfat {
	u_char	cluster;
}FAT,*PFAT,**PPFAT;


/*************************************************************************
模拟的磁盘空间

  规定:每一个块占16字节,本系统使用虚拟空间是256个字节,所以磁盘空间
		被划分成16块
  第0块存放FAT表,最多有16个FAT表项,也意味着本系统只能支持最大16个块
  第1~4块存放目录,每个目录项占用1块(16字节),表示本系统最多支持4个文件
  第5块开始存放文件内容
**************************************************************************/
#define MAX_DISK_SIZE 256
#define BLOCKSIZE 16
#define MAX_FAT	  16
extern u_char g_disk[MAX_DISK_SIZE];	//模拟的磁盘空间


/********************************************************************
获取指定块的首地址
*********************************************************************/
void* getBlockAddr(int blockno);

/********************************************************************
虚拟磁盘初始化
*********************************************************************/
void InitDisk();

/********************************************************************
创建文件
*********************************************************************/
int CreateFile(pchar f_name, pchar f_content, int f_size);

/********************************************************************
列出文件
*********************************************************************/
int ListFile();

/********************************************************************
显示文件
*********************************************************************/
int displayFile(pchar filename);

/********************************************************************
删除文件
*********************************************************************/
int deleteFile(pchar filename);

#endif


⌨️ 快捷键说明

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