return 0; }
int main(int argc,char *argv[]) {int i,ret;
for(i=1;i
{ret=ShowFileInfo(argv[i]); if(argc-i>1)printf(\}
return ret; }
//p4.c
#include
extern int etext,edata,end; main() {
printf(\}
//p5.c
#include
#define SHW_ADR(ID,I) printf(\extern int etext,edata,end; char *cptr=\char buffer1[25]; main()
{ void showit(char *); int i=0;
printf(\ SHW_ADR(\ SHW_ADR(\ SHW_ADR(\
SHW_ADR(\ SHW_ADR(\
strcpy(buffer1,\ write(1,buffer1,strlen(buffer1)+1); for(;i<1;++i) showit(cptr); }
void
showit(char *p) { char *buffer2;
SHW_ADR(\
if ((buffer2=(char *)malloc((unsigned)(strlen(p)+1)))!=NULL) { strcpy(buffer2,p); printf(\ free(buffer2); } else
{ printf(\ exit(1); } }
//p6.c
#include
int main(int argc,char *argv[]) { char s[1024]; FILE *fp;
if((fp=fopen(argv[1],\ { while((fgets(s,1024,fp))!=(char *)0) puts(s); } else
{ fprintf(stderr,\ exit(1); }
exit(0); }
《计算机操作系统》实验六报告
实验六 题目 : FAT 文件系统实验
姓名 : 余果 学号 :14122602
实验环境 : win95 虚拟机 实验目的 :
从系统分析的角度出发,了解 FAT 文件系统的组织结构和文件的存储方式。进一步理 解操作系统文件管理的基本思想。 实验内容 :
1.了解 3 吋软盘的 FAT 文件系统结构。 2.察看文件分配表的簇号链。
3.察看文件目录表中文件目录结构。
4.了解用簇号链映射的文件链式存储结构。 5.分析目录文件的组成。
实验步骤 :
1. 进入 DEBUG 环境,装入 FAT 文件系统结构。 执行命令:L 0 0 0 21
说明:将 0 号驱动器中,逻辑扇区号从 0 开始的共 21H 个扇区读入内 存,放在 DS:0000 为起始的地址中。
2.观察 1.44M 软盘中 FAT12 文件系统结构。 执行命令:D 0000
连续执行 D 命令,每次显示 128 个字节,可见文件系统结构。 FAT 文件系统结构如下: 逻辑扇区号
其中:
Boot 引导程序 FAT 文件分配表 FDT 文件目录表
1.44M 软盘逻辑扇号与物理扇区的对应关系 逻辑扇号 0 # —— 0 道 0 面 1 扇
逻辑扇号 1 H ~11H —— 0 道 0 面 2 ~18 扇 逻辑扇号 12 H ~23H —— 0 道 1 面 1 扇~18 扇 逻辑扇号 24 H ~35H —— 1 道 0 面 1 扇~18 扇
软盘有两面,每面 80 个磁道,每个磁道 18 个扇区,每个扇区 512 个字节,所以软盘的容量是 2*80*18*512 = 1474560, 1474560/1024/1024 大约为 1.44M。
3.分析文件分配表结构,了解用簇链映射的文件的链式存储结构。 执行命令:D 200
思考: 上面屏幕显示首簇号为 003 的文件共包括几个扇区?它分布在哪几个物理 扇区上?
答:首簇号为 003 的文件共包括 2 个扇区,它分布在 0 道 0 面 2、3 扇。
4.观察 1.44M 软盘中文件目录表 FDT 以及文件目录结构 执行命令:L 0 0 0 21
说明:将逻辑扇区 0H 开始的共 21H 个物理扇区装入 DS:0000H 起始的内存。 执行命令:D 2600
说明:显示从 2600H 地址开始的 FDT 文件表。
思考:①计算 1.44M 的软盘根目录最多可以容纳多少文件?
答: 1.44MB软盘的文件目录表FDT共14个扇区, 每个文件的目录登记项占用 32 个字节,用作目录的一个扇区(512 字节)最多只能装入 512/32=16 个文件。因 此,1.44MB 软盘的根目录下最多可建文件或子目录 224 个。
②上图屏幕显示的文件的目录项中标示该文件的首簇号在何处?该文件是什么 属性?
答:首簇号在第 2 行的 1A~1B 字节处,首簇号为 002,该文件属于归档文件。 书上显示的文件首簇号在第 6 行的 1A~1B 字节处,首簇号为 091,属归档文件。 ③书上面的屏幕显示第 1~2 行目录项表示的是什么项目? 答:第 1~2 目录项表示卷标。
5.观察 1.44M 软盘中文件目录表的长文件名目录结构 思考:①书上面屏幕显示的 2~3 行是什么目录项? 答:长名的第一项,也是最后一项。
②若有一个文件名共长 34 个字符,要占多少目录项? 答:四个目录项,三个长目录项和一个短目录项。
6.自己动手做:
①观察测试软盘的 FDT 区,找到名为 BAK 的文件目录。该文件是什么类型的文 件?文件放在磁盘的哪个位置?占用几个存储单位?调出其内容看看。
该文件为 BAK.txt,属于归档文件。察看其首簇号为 002,对应了数据区 21H 逻 辑扇区。
执行:L 0 0 0 21 D 2600
察看内容执行:L 8000 0 21 8