資源簡介
給出一個磁盤塊序列:1、2、3、……、500,初始狀態所有塊為空的,每塊的大小為2k。選擇使用位表、鏈式空閑區、索引和空閑塊列表四種算法之一來管理空閑塊。對于基于塊的索引分配執行以下步驟:
? 隨機生成2k-10k的文件50個,文件名為1.txt、2.txt、……、50.txt,按照上述算法存儲到模擬磁盤中。
? 刪除奇數.txt(1.txt、3.txt、……、49.txt)文件
? 新創建5個文件(A.txt、B.txt、C.txt、D.txt、E.txt),大小為:7k、5k、2k、9k、3.5k,按照與(1)相同的算法存儲到模擬磁盤中。
? 給出文件A.txt、B.txt、C.txt、D
代碼片段和文件信息
#include
#include
#include
#include
#include
#define?N?500
#define?BlockSize?2
typedef?struct?Block
{
int?index;
int?state;
int?fileNumber;
}Block;
Block?block[N];
typedef?struct?file
{
int?number;
char?*?name;
int?length;
int?startBlockIndex;
int?blockNeeded;
}file;
file?f[50];????????????????????????//創建50個文件結構體對象
char?fileName[50][7];
int?randSize[50];
typedef?struct?FAT
{
char*?fileName;
int?indexBlock;
}FAT;
FAT?fat[5];
void?initial()
{
int?i;
srand(time(NULL));???????????????//使每次運行產生的隨機數列不一樣
for(i=0;i<50;i++)
{
sprintf(fileName[i]?“%d“?i+1);????????????//寫字符串到fileName
strcat(fileName[i]“.txt“);
randSize[i]=rand()%9+2;?????????????????????//隨機生成文件大小
// printf(“%s
評論
共有 條評論