• 大小: 84KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-10
  • 语言: 其他
  • 标签: 文件系统  

资源简介

在内存空间上模拟文件系统操作,支持指令有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


评论

共有 条评论