资源简介
模拟linux文件系统

代码片段和文件信息
#include“struct.h“
//全局变量
//磁盘指针
extern FILE* fd;
//超级块
extern SuperBlock superBlock;
//位示图法,1是占用,0是空闲
extern unsigned short inode_bitmap[INODE_NUM];
//所有用户
extern UserInfo users;
//当前用户ID
extern unsigned short userID;
//当前用户名
extern char userName[USER_NAME_LENGTH];
//当前目录信息
extern Directory currentDirectory;
//当前绝对路径
//extern char curr_absolute[100][14];
extern unsigned short dir_pointer;
//查找空闲盘块号
void find_free_block(unsigned int &inode_number);
//回收盘块
void recycle_block(unsigned int &inode_number);
//文件系统初始化
bool Format();
//磁盘初始化
bool Mount();
//用户登录
bool Login(const char* user const char* password);
//用户退出登录
void Logout();
//创建文件
bool CreateFile(const char* filename);
//删除文件
bool DeleteFile(const char* filename);
//打开文件
inode* OpenFile(const char* filename);
//写文件
int Write(inode& ifile const char* content);
//打印文件内容
void PrintFile(inode& ifile);
//创建目录
bool MakeDir(const char* dirname);
//删除目录
bool RemoveDir(const char* dirname);
//打开文件夹
bool OpenDir(const char* dirname);
//显示当前目录信息
void List();
//打印绝对路径
void Ab_dir(Directory &tmp_dir);
//更改文件权限
void Chmod(char* filename);
//更改文件夹拥有者
void Chown(char* filename);
//更改文件用户组
void Chgrp(char* filename);
//修改密码
void Passwd();
//重命名文件/文件夹
void Rename(char* filename);
//链接
bool ln(char* filename);
//拷贝
bool Copy(char* filename inode*& currentInode);
//系统开始
void Sys_start();
//接受命令并跳转
void InputCmd(inode*& currentInode);
//打印帮助信息
void Help();
//系统开始
void Sys_start() {
//文件系统初始化
Mount();
printf(“\t**************************************************************\n“);
printf(“\t* 模拟unix文件系统 *\n“);
printf(“\t* --------made by 沈鑫 *\n“);
printf(“\t**************************************************************\n“);
}
//文件系统初始化
bool Format()
{
//空则新建硬盘文件
FILE* fd = fopen(“./disk.txt“ “wb+“);
if (fd == NULL)
{
printf(“文件系统初始化失败!\n“);
return false;
}
//初始化超级块
SuperBlock superBlock;
superBlock.inode_num = INODE_NUM;
superBlock.block_num = BLOCK_NUM + 67;
superBlock.inode_size = INODE_SIZE;
superBlock.block_size = BLOCK_SIZE;
superBlock.free_block_num = BLOCK_NUM - 2;
superBlock.free_inode_num = INODE_NUM - 2;
superBlock.special_stack[0] = 99;
for (int i = 1; i < 50; i++)
{
superBlock.special_stack[i] = 49 - i;
}
superBlock.special_free = 47;
//写超级块
fseek(fd BLOCK_SIZE SEEK_SET);
fwrite(&superBlock sizeof(SuperBlock) 1 fd);
fseek(fd BLOCK_SIZE SEEK_SET);
fread(&superBlock sizeof(SuperBlock) 1 fd);
//位示图初始化
unsigned short inode_bitmap[INODE_NUM];
memset(inode_bitmap 0 INODE_NUM);
inode_bitmap[0] = 1;
inode_bitmap[1] = 1;
//写入位示图
fseek(fd 2 * BLOCK_SIZE SEEK_SET);
fwrite(inode_bitmap sizeof(unsigned short) * INODE_NUM 1 fd);
//成组连接
unsigned int stack[51];
for (int i = 0; i < BLOCK_NUM / 50; i++)
{
memset(stack 0 sizeof(stack));
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 188 2017-01-19 19:17 操作系统大型实验\ReadMe.txt
文件 91136 2017-01-19 19:13 操作系统大型实验\可执行文件\OS_BigWork.exe
文件 91136 2017-01-19 19:13 操作系统大型实验\源代码\OS_BigWork\Debug\OS_BigWork.exe
文件 370944 2017-01-19 19:13 操作系统大型实验\源代码\OS_BigWork\Debug\OS_BigWork.ilk
文件 1323008 2017-01-19 19:13 操作系统大型实验\源代码\OS_BigWork\Debug\OS_BigWork.pdb
文件 16580608 2017-01-05 22:24 操作系统大型实验\源代码\OS_BigWork\ipch\os_bigwork-9d951ce5\os_bigwork-ba038e02.ipch
文件 107011 2017-01-18 12:05 操作系统大型实验\源代码\OS_BigWork\OS_BigWork\Debug\FileOperate.obj
文件 119852 2017-01-19 19:13 操作系统大型实验\源代码\OS_BigWork\OS_BigWork\Debug\Init.obj
文件 112778 2017-01-19 19:13 操作系统大型实验\源代码\OS_BigWork\OS_BigWork\Debug\main.obj
文件 226886 2017-01-19 19:13 操作系统大型实验\源代码\OS_BigWork\OS_BigWork\Debug\Operate.obj
文件 647 2017-01-19 19:13 操作系统大型实验\源代码\OS_BigWork\OS_BigWork\Debug\OS_BigWork.log
文件 7974 2017-01-19 19:13 操作系统大型实验\源代码\OS_BigWork\OS_BigWork\Debug\OS_BigWork.tlog\cl.command.1.tlog
文件 23900 2017-01-19 19:13 操作系统大型实验\源代码\OS_BigWork\OS_BigWork\Debug\OS_BigWork.tlog\CL.read.1.tlog
文件 4540 2017-01-19 19:13 操作系统大型实验\源代码\OS_BigWork\OS_BigWork\Debug\OS_BigWork.tlog\CL.write.1.tlog
文件 4506 2017-01-19 19:13 操作系统大型实验\源代码\OS_BigWork\OS_BigWork\Debug\OS_BigWork.tlog\li
文件 3510 2017-01-19 19:13 操作系统大型实验\源代码\OS_BigWork\OS_BigWork\Debug\OS_BigWork.tlog\li
文件 1846 2017-01-19 19:13 操作系统大型实验\源代码\OS_BigWork\OS_BigWork\Debug\OS_BigWork.tlog\li
文件 235 2017-01-19 19:13 操作系统大型实验\源代码\OS_BigWork\OS_BigWork\Debug\OS_BigWork.tlog\OS_BigWork.lastbuildstate
文件 412672 2017-01-19 19:13 操作系统大型实验\源代码\OS_BigWork\OS_BigWork\Debug\vc120.idb
文件 380928 2017-01-19 19:13 操作系统大型实验\源代码\OS_BigWork\OS_BigWork\Debug\vc120.pdb
文件 1484 2017-01-18 14:44 操作系统大型实验\源代码\OS_BigWork\OS_BigWork\define.h
文件 296140 2017-01-19 19:13 操作系统大型实验\源代码\OS_BigWork\OS_BigWork\disk.txt
文件 7039 2017-01-18 23:39 操作系统大型实验\源代码\OS_BigWork\OS_BigWork\Init.cpp
文件 2736 2017-01-18 23:39 操作系统大型实验\源代码\OS_BigWork\OS_BigWork\main.cpp
文件 58086 2017-01-19 19:09 操作系统大型实验\源代码\OS_BigWork\OS_BigWork\Operate.cpp
文件 4253 2017-01-18 12:23 操作系统大型实验\源代码\OS_BigWork\OS_BigWork\OS_BigWork.vcxproj
文件 1328 2017-01-18 12:23 操作系统大型实验\源代码\OS_BigWork\OS_BigWork\OS_BigWork.vcxproj.filters
文件 143 2017-01-05 22:22 操作系统大型实验\源代码\OS_BigWork\OS_BigWork\OS_BigWork.vcxproj.user
文件 1513 2017-01-18 17:51 操作系统大型实验\源代码\OS_BigWork\OS_BigWork\struct.h
文件 7340032 2017-01-19 19:14 操作系统大型实验\源代码\OS_BigWork\OS_BigWork.sdf
............此处省略17个文件信息
- 上一篇:Yifile器
- 下一篇:电气符号库(最全图集).zip
相关资源
- STM32基于rt_thread操作系统的SDHC卡文件
- 51模拟SPI读写SD卡(包括Fat和Fat32文件
- 广东工业大学操作系统实验四文件系
- 二级文件系统(操作系统)
- 基于stm32F103vct6的SD卡FATFS文件系统移植
- linux系统的二级文件系统(QT实现了简
- 为linux系统设计一个简单的二级文件系
- linux2.6.11.12内核源码注释
- zedboard ubuntu16.04文件系统
- linux环境下课程设计《二级文件系统》
- MooseFS 分布式文件系统源码分析202页,
- 多用户多级目录文件系统的实现
- 模拟Unix文件系统,操作系统课程设计
- linux文件系统设计
- 基于STM32平台的智能药箱系统包含文件
- stm32f103的sdio方式读sd卡,带fatfs文件系
- Stm32驱动SDCard移植FATFS文件系统
- FS4412文件系统镜像文件
- 文件系统模拟 windows资源管理器模拟
- fuse文件系统课程设计源代码和设计文
- 操作系统课程设计报告-单用户多级文
- 模拟Linux文件系统含源码及报告
- 数据结构课设文件系统模拟器
- stm32 SD卡 fat系统 串口控制台
- 并行文件系统简介
- SD_Flash+FatFs+浮点型数据存取-Y.rar
- Tiny6410根文件系统yaffs2根文件系统
- STM32 adc采集数据存到SD卡中
- STM32_SD_FATFS文件系统学习资料
- 嵌入式FAT16/FAT32文件系统免费
评论
共有 条评论