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

📄 filesys.h

📁 linux文件系统试验 一、实验目的 学习有关linux文件管理程序如何组织的知识
💻 H
字号:
#ifndef FILESYS_H#define FILESYS_H#define DEVNAME "/dev/fd0H1440"#define DIR_ENTRY_SIZE 32#define SECTOR_SIZE    512#define FAT_ONE_OFFSET 0x200#define FAT_TWO_OFFSET 0x1400#define ROOTDIR_OFFSET 0x2600#define DATA_OFFSET    0x4200/* mask for the entry attribute */#define ATTR_READONLY 0x01#define ATTR_HIDDEN   0x02#define ATTR_SYSTEM   0x04#define ATTR_VLABEL   0x08#define ATTR_SUBDIR   0x10#define ATTR_ARCHIVE  0x20/* mask for time 5:6:5*/#define MASK_HOUR     0xf800#define MASK_MIN      0x07e0#define MASK_SEC      0x001f/* mask for date 7:4:5*/#define MASK_YEAR     0xfe00#define MASK_MONTH    0x01e0#define MASK_DAY      0x001fstruct BootDescriptor_t {  unsigned char Oem_name[9];     /* 0x03 - 0x0a */  int BytesPerSector;            /* 0x0b - 0x0c */  int SectorsPerCluster;         /* 0x0d        */  int ReservedSectors;           /* 0x0e - 0x0f */  int FATs;                      /* 0x10        */  int RootDirEntries;            /* 0x11 - 0x12 */  int LogicSectors;              /* 0x13 - 0x14 */  int MediaType;                 /* 0x15        */  int SectorsPerFAT;             /* 0x16 - 0x17 */  int SectorsPerTrack;           /* 0x18 - 0x19 */  int Heads;                     /* 0x1a - 0x1b */  int HiddenSectors;             /* 0x1c - 0x1d */};struct Entry {  unsigned char short_name[12];  /* Bytes 0  - 10, 11 Bytes name */  unsigned char long_name[27];   /* not used       26 Bytes name */  unsigned short hour,min,sec;   /* Bytes 22 - 23 */  unsigned short year,month,day; /* Bytes 24 - 25 */  unsigned short FirstCluster;   /* Bytes 26 - 27 */  unsigned int size;            /* Bytes 28 - 31 */  /* attribute                      Bytes 11       * 7  6  5  4  3  2  1  0    * N  N  A  D  V  S  H  R         N: not used   */  unsigned char readonly:1;      /* R */  unsigned char hidden:1;        /* H */  unsigned char system:1;        /* S */  unsigned char vlabel:1;        /* V */  unsigned char subdir:1;        /* D */  unsigned char archive:1;       /* A */};int fd_load();int fd_ls();int fd_cd(char *dir);int fd_rm(char *file_name);void findDate(unsigned short *year,	      unsigned short *month,	      unsigned short *day,	      unsigned char info[2]);void findTime(unsigned short *hour,	      unsigned short *min,	      unsigned short *sec,	      unsigned char info[2]);int  ReadFat();int  WriteFat();void ScanBootSector();void ScanRootEntry();int  ScanEntry(char *entryname,struct Entry *pentry,int mode);int  GetEntry(struct Entry *entry);void FileNameFormat(unsigned char *name);unsigned short GetFatCluster(unsigned short prev);void ClearFatCluster(unsigned short cluster);#endif

⌨️ 快捷键说明

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