1252384 蒋吉 计算机科学
本次操作系统作业按照老师的要求实现了文件管理的基本要求,可以对文件进行一些
必须的操作,在实现文件管理时遇到了一些困难,最后再查阅资料和自己理解学习的过程
中得到了解决,下面就是我所创建的一些对文件进行管理的数据结构和函数,我先介绍我
的数据结构。
typedef struct
{
int s_isize; /* 外存 Inode 区占用的盘块数 */
int s_fsize; /* 盘块总数 */
int s_nfree; /* 直接管理的空闲盘块数量 */
int s_free[100]; /* 直接管理的空闲盘块索引表 */
int s_ninode; /* 直接管理的空闲外存 Inode 数量 */
int s_inode[100]; /* 直接管理的空闲外存 Inode 索引表 */
int s_fmod; /* 内存中 super block 副本被修改标志,意味着需要更
新外存对应的 Super Block */
int padding[47]; /* 填充使 SuperBlock 块大小等于 1024 字节,占据 2 个扇区
*/
}filsys; /*管理块(超级块)的数据结构 */
这个数据结构是超级块的,在课件上面有,没有什么特殊的,因为我不会写缓存,而
且我所实现的文件管理比较简单,所以我将很多状态为删除了。
typedef struct
{
char m_name[8]; /*用户名*/
char pathword[24]; /*密码*/
}usrinformation; /*用户信息的数据结构*/
这是我所设置的用户信息的数据结构
typedef struct
{
unsigned int d_mode; /*状态标志位*/
int d_nlink; /*该文件在目录中不同文件名的数量*/
short d_uid; /*文件所有者的用户标识数*/
int d_size; /*文件大小,单位为字节*/
int d_addr[10]; /*文件逻辑块号和物理块号转换的基本索引表*/
}DiskInode; /*外存 Inode 节点的数据结构*/
这个是外存 inode 节点,还是比较简单,书上就有。