资源简介
在内存空间上模拟文件系统操作,支持指令有ls,pwd,mkdir,rmdir,mv,touch,rm,read,write

代码片段和文件信息
#include“DiskOperate.h“
#include
#include
char* systemStartAddr; //系统起始地址
//初始化系统
void initSystem()
{
//创建空间
systemStartAddr = (char*)malloc(system_size * sizeof(char));
//初始化盘块的位示图
for(int i=0; i systemStartAddr[i] = ‘0‘;
//用于存放位示图的空间已被占用
int bitMapSize = block_count * sizeof(char) / block_szie;//位示图占用盘块数:100
for(int i=0; i systemStartAddr[i] = ‘1‘; //盘块已被使用
}
//退出系统
void exitSystem()
{
free(systemStartAddr);
}
//磁盘分配
int getBlock(int blockSize)
{
int startBlock = 0;
int sum=0;
for(int i=0; i {
if(systemStartAddr[i] == ‘0‘)//可用盘块
{
if(sum == 0)//刚开始,设置开始盘块号
startBlock = i;
sum++;
if(sum == blockSize)//连续盘块是否满足需求
{
//满足分配,置1
for(int j=startBlock; j systemStartAddr[j] = ‘1‘;
return startBlock;
}
}
else//已被使用连续已经被打断
sum = 0;
}
printf(“not found such series memory Or memory is full\n“);
return -1;
}
//获得盘块的物理地址
char* getBlockAddr(int blockNum)
{
return systemStartAddr + blockNum * block_szie; //偏移量单位为字节
}
//获得物理地址的盘块号
int getAddrBlock(char* addr)
{
return (addr - systemStartAddr)/block_szie;
}
//释放盘块、
int releaseBlock(int blockNum int blockSize)
{
int endBlock = blockNum + blockSize;
//修改位示图盘块的位置为0
for(int i=blockNum; i systemStartAddr[i] = ‘0‘;
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1826 2017-06-26 23:19 DiskOperate.cpp
文件 542 2017-06-27 16:53 DiskOperate.h
文件 11360 2017-06-27 19:03 FileOperate.cpp
文件 1997 2017-06-27 13:13 FileOperate.h
文件 262359 2017-06-27 19:18 FileSystem.exe
文件 4832 2017-06-27 16:15 main.cpp
----------- --------- ---------- ----- ----
282916 6
相关资源
- 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文件系统学习资料
- 操作系统大型实验报告加源码
评论
共有 条评论