disk.h
来自「一个简单的虚拟机和虚拟操作系统」· C头文件 代码 · 共 38 行
H
38 行
#pragma once
#include "StdAfx.h"
#include "all.h"
#include<memory>
using namespace std;
class Disk
{
friend class FS;
private:
/*
* return a pointer points to the block of
* the given index
*/
char* getBlock(int index)const
{
if(index >= BLOCK_NUM||index < 0)
throw OUT_OF_DISK;
return (char*)data+index*BLOCK_SIZE;
}
bool readBlock(int index,char* buffer)const
{
if(index >= BLOCK_NUM||index < 0)
return false;
memcpy(buffer,data+index*BLOCK_SIZE,sizeof(char)*BLOCK_SIZE);
return true;
}
bool writeBlock(int index,const char* buffer)
{
if(index >= BLOCK_NUM||index < 0)
return false;
memcpy(data+index*BLOCK_SIZE,buffer,sizeof(char)*BLOCK_SIZE);
return true;
}
private:
//a space stored the disk data
char data[DISK_SIZE];
};
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?