📄 fssigleton.h
字号:
#pragma once
#include "UL_FileSys.h"
#define O_RDONLY 00 // 以只读方式打开文件。
#define O_WRONLY 01 // 以只写方式打开文件。
#define O_RDWR 02 // 以读写方式打开文件。
// 文件创建标志
#define O_CREAT 00100 // 如果文件不存在就创建。
#define O_EXCL 00200 // 独占使用文件标志。
#define O_NOCTTY 00400 // 不分配控制终端。
#define O_TRUNC 01000 // 若文件已存在且是写操作,则长度截为0。
#define O_APPEND 02000 // 以添加方式打开,文件指针置为文件尾
// 高速缓存初始化
extern void buffer_init ();
// 块设备初始化
extern void blk_dev_init();
// 初始化虚拟盘
extern int vhd_init (char* filename);
extern void vhd_release();
// 挂装根目录
extern int mount_root (void);
// 系统同步
extern int sys_sync(void);
// 创建文件夹
extern int UL_mkdir (const char *pathname, int mode);
// 删除文件夹
extern int UL_rmdir (const char *name);
// 创建文件
extern int UL_creat (const char *pathname, int mode);
// 删除文件
extern int UL_delete (const char *name);
// 打开(创建)文件
extern int UL_open (const char *filename, int flag, int mode);
// 关闭文件
extern int UL_close (int fd);
// 写入文件
extern int UL_write (int fd, char *buf, int count);
// 读取
extern int UL_read (int fd, char *buf, int count);
// 移动文件指针
extern int UL_lseek (int fd, long offset, int origin);
// 获得文件大小
extern unsigned long UL_getfilesize(int fd);
// 文件查找
extern int findfirstfile (const char *pathname, struct FIND_DATA* ff);
extern int findnextfile (int handle, struct FIND_DATA* ff);
extern int UL_rename (const char *pathname, const char *name);
extern struct super_block *get_super (int dev);
// 文件类型:
#define S_IFMT 00170000 // 文件类型
#define S_IFREG 0100000 // 常规文件
#define S_IFDIR 0040000 // 目录文件
// 文件查找结构体
struct FIND_DATA
{
unsigned short ff_mode; // 类型
char ff_name[NAME_LEN]; // 名称
};
// 文件控制块
// 文件控制块
struct FILE_INFO
{
unsigned short fi_mode; // 文件类型和属性(rwx 位)
unsigned short fi_uid; // 用户id(文件拥有者标识符)
unsigned long fi_size; // 文件大小(字节数)
long fi_mtime; // 修改时间(自1970.1.1:0 算起,秒)
unsigned char fi_gid; // 组id(文件拥有者所在的组)
unsigned char fi_nlinks; // 文件目录项链接数
unsigned short fi_zone[9]; // 直接(0-6),间接(7)或双重间接(8)逻辑块号
struct task_struct *fi_wait;// 等待该i 节点的进程
long fi_atime; // 最后访问时间
long fi_ctime; // i 节点自身修改时间
unsigned short fi_dev; // i 节点所在的设备号
unsigned short fi_num; // i 节点号
unsigned short fi_count; // i 节点被使用的次数,0 表示该i 节点空闲
unsigned char fi_lock; // 锁定标志
unsigned char fi_dirt; // 已修改(脏)标志
unsigned char fi_pipe; // 管道标志
unsigned char fi_mount; // 安装标志
unsigned char fi_seek; // 搜寻标志(lseek 时)
unsigned char fi_update; // 更新标志
};
extern int UL_getfileattr(int fd, FILE_INFO* FI);
// 文件系统管理单件
class CFSSigleton
{
protected:
BOOL m_bVDiskLoaded;
public:
CFSSigleton(void);
~CFSSigleton(void);
// 是否已经载入虚拟盘
BOOL IsVDiskLoaded()
{
return m_bVDiskLoaded;
}
// 装载磁盘
int LoadVDisk(CString Path);
// 卸载磁盘
int UnLoadDisk();
// 查找第一个文件
int FindFirstFile (const char *pathname, struct FIND_DATA* ff);
int FindNextFile (int handle, struct FIND_DATA* ff);
//
int MakeDir (const char *pathname, int mode);
int RemoveFolder (const char *pathname);
// 删除文件
int Delete (const char *name);
// 打开(创建)文件
int Open (const char *filename, int flag, int mode);
// 关闭文件
int Close (int fd);
// 写入文件
int Write (int fd, char *buf, int count);
// 读取
int Read (int fd, char *buf, int count);
// 移动文件指针
int Seek (int fd, long offset, int origin);
// 获得文件大小
unsigned long GetFileSize(int fd);
// 文件系统同步
int Sync();
// 重命名
int Rename(const char *pathname, const char *name);
struct super_block GetSuper();
long GetTotalBlocks();
int GetFileAttr(int fd, FILE_INFO* FI);
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -