爱玩科技网
您的当前位置:首页第4章文件系统实验

第4章文件系统实验

来源:爱玩科技网


操作系统课程实验报告

姓名 任课教师 实验地点 贺辉 学号 指导教师 贺辉 系 评阅教师 计算机科学与技术 贺辉 实验时间 实验编号与实验名称: 第4章 文件系统实验 实验目的: 熟悉文件和目录的基本操作;了解Linux的/proc文件系统 实验内容及要求(详见实验讲义): 1) 在/usr目录下创建一个目录usr_test和文本文件mytest,并建立一个mytest文件的链接test02。通过修改test文件中的内容查看test和test02中内容的情况,并分析原因。 2) 编写程序,从/proc文件中抽取内核参数(任意的2个参数即可,如CPU时钟速度信息等) 3) 实现文件的拷贝,即把一个文件内容复制到另一个文件 实验用到的软件(:) C-Free,linux,word 实验内容、关键步骤(流程图、代码等)及结果分析(70分) 一、在/usr目录下创建一个目录usr_test和文本文件mytest,并建立一个mytest文件的链 1.切换用户

2.建立文件,并查看文件 3.创建软连接

4.查看创建结果 5.查看结果

6.修改test 7.查看结果

分析结果 (1)创建链接后,读取test1的时候,由于链接的原因,实际上读取到的是test的内容,所以读取test.txt和test01时显示的内容是一样的。修改test之后,test01也会跟着改变,显示了同步性。 (2)link命令会保持链接文件的同步性 (3)这种连接方式属于软链接,软链接指挥在你选定的位置上生成一个镜像文件 二、编写程序,从/proc文件中抽取内核参数(任意的2个参数即可,如CPU时钟速度信息等) 1.使用cat /proc/cpuinfo查询本机信息,访问内核中的参数、数据结构、和统计数据的方法 2.编译代码

代码解读 (1)申请获得cpu时钟频率信息函数 (2) 通过fread函数,从一个buffer文件流中读数据,最多读取buffer各个项,每个项为1个字节,如果调用成功返回实际读取到的项个数,如果不成功或读到文件末尾返回 0。 功 能: 从一个流中读数据 函数原型: size_tfread(void*buffer,size_tsize,size_tcount,FILE*stream); 参 数: 1.用于接收数据的地址(指针)(buffer) 2.单个元素的大小(size) :单位是字节而不是位,例如读取一个int型数据就是4个字节 3.元素个数(count) 4.提供数据的文件指针(stream) 返回值:读取的元素的个数 (3) 通过strstr()函数将找出cpu MHz在buffer出现的位置,为之后的提取值做准备 strstr() 包含文件:string.h

函数原型:extern char *strstr(char *str1, char *str2); 功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。 返回值:返回该位置的指针,如找不到,返回空指针。 (4)通过sscanf语句提取cpu的时钟频率 sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: int sscanf( const char *, const char *, ...); int sscanf(const char *buffer,const char *format,[argument ]...); buffer 存储的数据 format 格式控制字符串 argument 选择性设定字符串 sscanf会从buffer里读进数据,依照argument的设定将数据写回。 三、实现文件的拷贝,即把一个文件内容复制到另一个文件 1.创建文件 2.编译代码

3.运行

4.创建t1,t2

5.运行copy代码 6.查看结果

7.删除t1 8.查看t2

结果分析: (1)此链接属于硬链接,即使源文件被修改或者删除都不会影响复制文件 (2)复制代码 for(;;){ bytesread=read(fromfd,buf,BLKSIZE); bp=buf; if(bytesread<=0) break; byteswritten=write(tofd,bp,bytesread); if(byteswritten<=0) break; totalbytes+=byteswritten; bytesread-=byteswritten; bp+=byteswritten; } 通过将读入字节流,及写入字节流将文件读取出来进行复制。使文件保持同步变化 (3)结果验证,文件实现了复制

实验过程中遇到的问题解决办法与实验体会(10分)【请注意:此处必须如实填写,为空或不适均扣10分】

因篇幅问题不能全部显示,请点此查看更多更全内容