-
大小: 5KB文件類型: .c金幣: 1下載: 0 次發(fā)布日期: 2021-01-09
- 語言: C/C++
- 標(biāo)簽: 操作系統(tǒng)??
資源簡介
給出一個(gè)磁盤塊序列:1、2、3、……、500,初始狀態(tài)所有塊為空的,每塊的大小為2k。選擇使用位表、鏈?zhǔn)娇臻e區(qū)、索引和空閑塊列表四種算法之一來管理空閑塊。對于基于塊的索引分配執(zhí)行以下步驟:
? 隨機(jī)生成2k-10k的文件50個(gè),文件名為1.txt、2.txt、……、50.txt,按照上述算法存儲(chǔ)到模擬磁盤中。
? 刪除奇數(shù).txt(1.txt、3.txt、……、49.txt)文件
? 新創(chuàng)建5個(gè)文件(A.txt、B.txt、C.txt、D.txt、E.txt),大小為:7k、5k、2k、9k、3.5k,按照與(1)相同的算法存儲(chǔ)到模擬磁盤中。
? 給出文件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];????????????????????????//創(chuàng)建50個(gè)文件結(jié)構(gòu)體對象
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));???????????????//使每次運(yùn)行產(chǎn)生的隨機(jī)數(shù)列不一樣
for(i=0;i<50;i++)
{
sprintf(fileName[i]?“%d“?i+1);????????????//寫字符串到fileName
strcat(fileName[i]“.txt“);
randSize[i]=rand()%9+2;?????????????????????//隨機(jī)生成文件大小
// printf(“%s
評論
共有 條評論