資源簡介
操作下系統的實驗報告,第6個實驗選的是那個設計一個大作業 模擬文件系統 實驗

代碼片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#include“head.h“
#include
using?namespace?std;
MFD?mfdlist[17]; //主文件目錄列表?
UFD?ufdlist[17]; //用戶層文件列表
UOF?uoflist[17]; //用戶打開文件列表
DISK?disklist[200]; //模擬磁盤列表
int?currentuserindex; //當前用戶在ufdlist中的位置
//格式化磁盤
void?format()
{
int?i;
ofstream?outfile;
//新建一個文件名字為disk.txt,以二進制方式打開文件
outfile.open(“disk.txt“ios::binary);
//輸入流
for(i=0;i<100;i++)
{
outfile< }
//seekp(位置,起始點)
outfile.seekp(0ios::beg);
//格式化
for(i=0;i<100;i++)
{
outfile<<(char)i;
outfile<<‘0‘< }
outfile.close();
cout<<“成功格式化系統!\n“;
}
//將更新后的物理塊的信息重新寫回磁盤
void?backdisklist()
{
int?i;
ofstream?outfile;
//二進制方式或者輸入方式
outfile.open(“disk.txt“ios::binary|ios::in); //
//輸出模擬的硬盤列表
for(i=0;i<100;i++)
{
outfile< }
outfile.close();
}
//從磁盤中獲得物理塊的信息
void?getdisklist()
{
int?i;
ifstream?infile;
//同上
infile.open(“disk.txt“ios::binary); //
//數據輸入
for(i=0;i<100;i++)
{
disklist[i].id=infile.get();
disklist[i].flag=infile.get();
disklist[i].next=infile.get();
infile.ignore();
}
infile.close();
}
//將更新后的MFD重新寫回磁盤
void?backmfdlist()
{
int?i;
ofstream?outfile;
//同上
outfile.open(“disk.txt“ios::binary|ios::in);
//位置,起始點
outfile.seekp(513ios::beg);
//寫入磁盤
for(i=0;i<16;i++)
{
outfile< outfile< outfile<nk< }
outfile.close();
}
//從磁盤中獲得MFD
void?getmfdlist()
{
int?i;
ifstream?infile;
//
infile.open(“disk.txt“ios::binary);
//和seekp功能相同
infile.seekg(513);
//從磁盤讀數據
for(i=0;i<16;i++)
{
char?username[14];
infile.read(username14);
mfdlist[i].username=username;
mfdlist[i].username=mfdlist[i].username.substr(0mfdlist[i].username.find(‘?‘));
char?userpwd[14];
infile.read(userpwd14);
mfdlist[i].userpwd=userpwd;
mfdlist[i].userpwd=mfdlist[i].userpwd.substr(0mfdlist[i].userpwd.find(‘?‘));
mfdlist[i].link=infile.get();
infile.seekg(3ios::cur);
}
infile.close();
}
//將更新后的UFD重新寫回磁盤
void?backufdlist()
{
int?i;
ofstream?outfile;
//
outfile.open(“disk.txt“ios::binary|ios::in);
outfile.seekp(513*(currentuserindex+2)ios::beg);
//ufd回寫磁盤
for(i=0;i<16;i++)
{
outfile< outfile< outfile.write((char*)(&ufdlist[i].length)sizeof(int));
outfile< outfile< }
outfile.close();
}
//從磁盤中獲得UFD
void?getufdlist()
{
int?i;
ifstream?infile;
//
infile.open(“disk.txt“ios::binary);
infile.seekg(513*mfdlist[currentuserindex].link);
//從磁盤中讀數據
for(i=0;
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????36180??2010-05-05?12:57??二級文件系統模擬\twofloorfilesys\Debug\BuildLog.htm
?????文件?????667745??2010-05-05?20:40??二級文件系統模擬\twofloorfilesys\Debug\twofloorfilesys.exe
?????文件?????903956??2010-05-05?20:40??二級文件系統模擬\twofloorfilesys\Debug\twofloorfilesys.ilk
?????文件?????601632??2010-05-05?20:40??二級文件系統模擬\twofloorfilesys\Debug\twofloorfilesys.obj
?????文件????6426352??2010-05-05?20:36??二級文件系統模擬\twofloorfilesys\Debug\twofloorfilesys.pch
?????文件????1262592??2010-05-05?20:40??二級文件系統模擬\twofloorfilesys\Debug\twofloorfilesys.pdb
?????文件?????222208??2010-05-05?20:40??二級文件系統模擬\twofloorfilesys\Debug\vc60.idb
?????文件?????167936??2010-05-05?20:40??二級文件系統模擬\twofloorfilesys\Debug\vc60.pdb
?????文件?????265216??2010-05-05?12:57??二級文件系統模擬\twofloorfilesys\Debug\vc90.idb
?????文件?????151552??2010-05-05?12:57??二級文件系統模擬\twofloorfilesys\Debug\vc90.pdb
?????文件??????51300??2010-05-05?20:36??二級文件系統模擬\twofloorfilesys\disk.txt
?????文件???????3331??2010-05-05?22:47??二級文件系統模擬\twofloorfilesys\head.h
?????文件??????30015??2010-05-05?23:12??二級文件系統模擬\twofloorfilesys\twofloorfilesys.cpp
?????文件???????3568??2010-05-05?19:43??二級文件系統模擬\twofloorfilesys\twofloorfilesys.dsp
?????文件????????536??2010-05-05?19:43??二級文件系統模擬\twofloorfilesys\twofloorfilesys.dsw
?????文件??????58368??2010-05-05?20:41??二級文件系統模擬\twofloorfilesys\twofloorfilesys.ncb
?????文件??????53760??2010-05-05?20:41??二級文件系統模擬\twofloorfilesys\twofloorfilesys.opt
?????文件???????3326??2010-05-05?20:40??二級文件系統模擬\twofloorfilesys\twofloorfilesys.plg
?????文件???????3743??2010-05-05?12:49??二級文件系統模擬\twofloorfilesys\twofloorfilesys.vcproj
?????文件???????1417??2010-05-05?12:59??二級文件系統模擬\twofloorfilesys\twofloorfilesys.vcproj.friendy-PC.friendy.user
?????文件????8768512??2010-05-05?12:59??二級文件系統模擬\twofloorfilesys.ncb
?????文件????????911??2010-05-05?12:40??二級文件系統模擬\twofloorfilesys.sln
????..A..H.?????13824??2010-05-05?12:59??二級文件系統模擬\twofloorfilesys.suo
?????目錄??????????0??2010-05-05?23:38??二級文件系統模擬\twofloorfilesys\Debug
?????目錄??????????0??2010-05-05?23:38??二級文件系統模擬\twofloorfilesys
?????目錄??????????0??2010-05-05?23:38??二級文件系統模擬
-----------?---------??----------?-----??----
?????????????19697980????????????????????26
- 上一篇:SAR影像艦船目標檢測
- 下一篇:Qt從入門到精通
評論
共有 條評論