操作系统 文件管理课程设计c语言代码
//欢迎下载,指导
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
#include <dos.h>
#include <conio.h>
#define BLOCKSIZ 512 //磁盘块的大小
#define DATABLKNUM 512 //数据块的数目
#define BLKGRUPNUM 50 //数据块组包含多少数据块
#define P_N_BLOCKS 15 //inode节点中 指向数据块的指针个数
#define GROUPNUM DATABLKNUM/BLKGRUPNUM+1 //数据块组 组数
#define DINODESIZ 512 //磁盘i结点区的大小(空间32×512)
#define DINODENUM 32 //磁盘i结点区的块数
#define SYSOPENFILE 40
#define DIRNUM 32 //一个目录下的最多目录和文件的总和数
#define DIRSIZ 14 //文件、目录名的长度(字节)
#define UPWDSIZ 15 //密码的长度
#define UNAMSIZ 15 //用户名的长度
#define PWDSIZ sizeof(struct pwd) //密码结构的长度
#define PWDNUM BLOCKSIZ/PWDSIZ //密码数据空间的大小(pwd为单位)
#define NOFILE 20 //一个用户最多可以打开的文件数目
#define NHINO 128
#define USERNUM 10 //用户名的长度
#define DINODESTART 4*BLOCKSIZ //i结点区的开始地址-inodes table ,1引导 2超块 3block bitmap 4inode bitmap
#define DATASTART (2+DINODENUM)*BLOCKSIZ //数据区的开始地址
#define DATASTARTNO 36 //数据区开始指针
/* di._mode */
#define DIMODE_EMPTY 00000/*可以用的空间*/
#define DIMODE_FILE 00001
#define DIMODE_DIR 00002
#define DIMODE_PASSWD 00004
#define DIMODE_SYSTEM 00040 /*系统文件*/
#define DIMODE_READ 00010 /* READ 和该数与操作后得到的是可以读该文件的用户组*/
#define DIMODE_WRITE 00020 /* WRITE */
#define DIMODE_EXICUTE 01000 /* EXICUTE */
#define DIMODE_ADMIN 00100 /*管理员权限*/
#define DIMODE_SHARE 00200 /*不需要权限*/
/*组*/
#define GRUP_0 0 //管理员组
#define GRUP_1 1
#define GRUP_2 2
#define GRUP_4 4
/************************ 文件系统 数据结构 *******************************/
// 磁盘i结点结构,
struct inode{
// char di_name[DIRSIZ];
unsigned __int16 di_ino; /*磁盘i节点标识*/
unsigned __int16 di_number; /*关联文件数,当为0时表示删除文件*/
unsigned __int16 di_mode; /*存取权限*/
unsigned __int16 di_uid; /*磁盘i节点用户id*/
unsigned __int16 di_gid; /*磁盘i节点权限组id*/ //1管理员组 2用户组
unsigned __int32 di_size; /*文件大小*/
unsigned __int32 di_ctime; /* Creation time */
unsigned __int32 di_mtime; /* Modification time */
unsigned __int16 di_block[P_N_BLOCKS]; /* 一组 block 指针 */
};
struct direct{
char d_name[DIRSIZ]; /*目录名(14字节)*/
__int16 d_ino; /*目录号*/
};
struct super_block{
unsigned __int16 s_inodes_count; /* inodes 计数 */
unsigned __int16 s_blocks_count; /* blocks 计数 */
unsigned __in
你可能喜欢
- 宿舍管理查询软件
- 文件系统
- 操作系统课程设计报告
- 计算机操作系统课程设计
- 操作系统课程设计银行家算法
- 操作系统课程设计模拟操作系统
- 操作系统课程设计题目
- 操作系统课程设计论文
- 宿舍管理查询软件实训报告18页
- 宿舍管理查询软件3页
- 宿舍管理查询软件(JAVA&&SQL Server)42页
- 宿舍管理查询软件代码11页
- 宿舍管理查询软件(1)12页
- 5-宿舍管理查询软件的设计与实现(1-2人完成)_任务书2页
- 文件防篡改系统(MD5加密实现)9页
- 项目部文件流转系统过程演示文稿22页
- Yaffs2文件系统移植艰辛记录9页
- Linux文件系统89页
- 文件系统151页
- 第10章 文件系统操作73页
- 操作系统课程设计报告_CQUPT12页
- 操作系统课程设计报告书+文件加密存储13页
- 操作系统课程设计报告42页
- 操作系统-文件系统-课程设计报告--后附源代码48页
- 操作系统课程设计 银行家算法报告26页
- 操作系统课程设计报告52页
- 《计算机操作系统》课程设计5页
- 计算机操作系统课程设计20页
- 计算机操作系统课程设计(JAVA语言)23页
- 计算机操作系统课程设计19页
- 计算机操作系统课程设计报告16页
- 计算机操作系统课程设计26页
- 操作系统课程设计 银行家算法报告26页
- 操作系统课程设计----模拟银行家算法避免死锁11页
- 操作系统课程设计银行家算法程序8页
- 银行家算法设计-操作系统课程设计报告书17页
- 操作系统银行家算法课程设计17页
- 操作系统课程设计银行家算法13页
- 操作系统课程设计-进程调度模拟19页
- 操作系统课程设计——进程调度模拟算法(5种)16页
- 操作系统课程设计 进程调度模拟设计--先来先服务,优先级法29页
- 操作系统课程设计----模拟银行家算法避免死锁11页
- 操作系统课程设计模拟文件系统10页
- 模拟进程调度功能的设计与实现操作系统课程设计(MFC版本)19页
- 《操作系统课程设计》题目要求2页
- 2013操作系统课程设计题目4页
- 操作系统课程设计题目1页
- 操作系统课程设计题目与要求9页
- 操作系统课程设计题目及任务17页
- 计算机08操作系统课程设计题目与任务分配7页
- 浅谈线程课程设计论文(操作系统)10页
- 操作系统课程论文设计25页
- 嵌入式操作系统课程设计论文7页
- 操作系统课程设计论文15页
- 操作系统课程设计论文7页
- 操作系统课程设计论文一个任务书6页