资源简介
每个索引节点(I节点)有十三个地址项,10个直接地址项,1个一级索引地址,1个二级索引地址,1个三级索引地址,给你一个文件大小通过计算能得知该文件占了那些块。(此为C++编写,仅供参考)
代码片段和文件信息
#include
#include “math.h“
struct data{
int year;
int month;
int day;
int hour;
int minute;
int second;
};
struct FCB{
char mode;
char owners;
struct data time;
int size;
int id;
int addr[13];
}file;
int lenlen1len2;
void allocation()
{
if(file.size>0&&file.size<10*len1+file.addr[10]+file.addr[11]+file.addr[12])
{
if(file.size<10*len1+file.addr[10]+file.addr[11])
{
if(file.size<10*len1+file.addr[10])
{
if(file.size<10*len1)
{
for(int sum=0i=0;sum {
i++;
}
printf(“%d\n“i);
}
else
printf(“%d\n“10+len);
}
else
printf(“%d\n“10+len*len);
}
else
printf(“%d\n“10+len*len*len);
}
else
printf(“文件太大,没有足够磁盘空间\n“);
}
void calculate()
{
int blockbite;
if(file.id<10*len1+file.addr[10]+file.addr[11]+file.addr[12])
{
block=int(file.id/len1);
bite=(int)fmod(file.idlen1);
printf(“该地址在第%d个盘块的第%d个字节\n“blockbite);
}
else
printf(“访问地址越界\n“);
}
void main()
{
int mark;
printf(“请输入盘块大小:“);
scanf(“%d“&len1);
printf(“请输入盘块号大小:“);
scanf(“%d“&len2);
len=len1/len2;
for(int i=0;i<10;i++)
{
file.addr[i]=len1;
}
file.addr[10]=len*len1;
file.addr[11]=len*len*len1;
file.addr[12]=len*len*len*len1;
while(mark!=3)
{
printf(“1.给指定大小的文件分配磁盘块\n2.计算要访问地址在第几个盘快的第几个字节\n3.退出\n请选择操作:“);
scanf(“%d“&mark);
switch(mark)
{
case 1:
printf(“请输入文件长度:“);
scanf(“%d“&file.size);
printf(“文件占用的磁盘块数为:“);
allocation();
break;
case 2:
printf(“请输入访问地址:“);
scanf(“%d“&file.id);
calculate();
break;
case 3:
break;
default:
printf(“选择有误请重新选择:“);
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-03-01 17:04 混合索引\
目录 0 2012-03-01 17:04 混合索引\Debug\
文件 41984 2012-01-02 16:38 混合索引\Debug\vc60.idb
文件 53248 2012-01-02 16:35 混合索引\Debug\vc60.pdb
文件 221258 2012-01-02 16:37 混合索引\Debug\W.exe
文件 220704 2012-01-02 16:37 混合索引\Debug\W.ilk
文件 7955 2012-01-02 16:37 混合索引\Debug\w.obj
文件 221360 2012-01-02 16:12 混合索引\Debug\W.pch
文件 476160 2012-01-02 16:35 混合索引\Debug\W.pdb
文件 1867 2012-01-02 16:35 混合索引\w.cpp
文件 4224 2011-12-01 13:20 混合索引\W.dsp
文件 527 2011-12-01 10:23 混合索引\W.dsw
文件 41984 2012-01-02 16:46 混合索引\W.ncb
文件 48640 2012-01-02 16:46 混合索引\W.opt
文件 864 2012-01-02 16:37 混合索引\W.plg
- 上一篇:基于C++的图书馆管理系统
- 下一篇:滚动轴承程序设计
评论
共有 条评论