北京信息科技大学Linux实验报告3_第1页
北京信息科技大学Linux实验报告3_第2页
北京信息科技大学Linux实验报告3_第3页
北京信息科技大学Linux实验报告3_第4页
北京信息科技大学Linux实验报告3_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验3文件子系统文件操作实验类别:设计实验学时:2学时开设该课程的单位是计算机学院计算机科学与技术系实验基地:建新校区计算机中心一、实验目的通过本实验练习,学生可以掌握文档管理和文档操作的内容。首先熟悉LINUX系统下文件系统的构建方法;其次,我们应该熟练掌握LINUX。环境下用C语言进行高级编程的方法(即进行与文件操作相关的系统调用的方法用),然后充分理解LINUX文件系统外壳命令的实现原理及其用途系统调用。二、实验环境操作系统:任何Unix/Linux和Sun Solaris或windows系列应用系统:gcc编译器。如果操作系统是windows系列,还需要相应的模拟环境。Iii .预备知识1.关于系统调用和库函数c语言支持一系列库函数调用,其中最基本的是studio库函数。东西事实上,库函数只是C语言在更高层次上调用的方式,而系统调用是较低的。C语言的分层接口是内核提供给用户调用的一个函数。2.LINUX环境下系统调用与库函数的异同(1)C程序用来调用系统的语句与用来调用库函数的语句完全相同,但是两者的运行环境和机制完全不同。(2)从运行环境的角度来看,库函数依赖于运行的用户环境,程序调用库函数函数,它运行的目标代码属于程序,程序在“用户状态”下执行。系统调用的使用并不依赖于运行它的用户环境,而是由LINUX内核提供的。7、系统调用时执行的代码属于内核,而程序是在“内核“实现的心态。(3)库函数的调用最终通过LINUX系统调用来实现。图书馆功能通常,指令(操作系统陷阱操作系统陷阱)将进程执行模式更改为核心状态,然后让核心执行系统调用的代码。四.实验内容这个实验需要在LINUX/UNIX环境下用C语言编写三个特定的SHELL命令,基本上涉及到了LINUX/UNIX文件系统中较为常用的文件操作系统系统调用。内容如下:(1)编程实现复制命令和执行格式:复制文件1文件2文件3函数:将文件1和文件2的内容复制到文件3中,中间有30个。一个字节洞。可以通过: read(),write(),open(),create(),close(),lseek()完成后,请注意文件文件的大小和内容3。实验代码:#包括#包括#包括#包括#包括#包括int main(int argc,char const *argv)int文件1、文件2、文件3;文件1=打开(参数1,只读);文件2=打开(参数2,只读);文件3=打开(参数3,O_CREAT|O_RDWR,S _ IRWXU);int n;char buf1024;而(n=read(file1,buf,1024)0)写(文件3,buf,n);lseek(文件3,30,SEEK _ END);而(n=read(file2,buf,1024)0)写(文件3,buf,n);关闭(文件1);关闭(文件2);关闭(文件3);printf( finish n );返回0;实验截图:(2)在LINUX下编程实现重命名命令。它的功能是重命名文件。执行格式:renamfileafileb其中,文件a是源文件,文件b是目标文件可以通过: read(),write(),open(),create(),关闭(),链接(),取消链接()实验代码:#包括#包括#包括int main(int argc,char* argv)链接(argv1,argv2);取消链接(argv1);printf( finish n );返回0;实验截图:(3)编程实现:使用符号链接()在当前目录中创建文件f1的符号链接文件f2。在理解stat结构内容的基础上,我们分别使用stat()和lstat()系统调用来显示文件f2中的信息(即stat结构的内容)比较了两个输出结果之间的异同。8次通过序列中可能涉及的系统有:开(),关(),stat(),lstat(),符号链接()实验代码:#包括#包括#包括#包括int main(int argc,char* argv)结构状态;/*链接*/symlink(argv1,argv2);stat(argv2,状态);printf(“% s stat size=% d字节n”,argv2,(int)state . ST _ size);lstat(argv2,state);printf(“% s lstat大小=%d字节n”,argv2,(int)state . ST _ size);返回0;实验截图:五、实验结果通过这次实验,我掌握了文件管理和文件操作的内容,学会了在ubuntu环境下编写简单的C程序,学会了用C语言编写和实现复制命令。编程实现renam(即在LINUX下重命名)命令,编程实现:使用符号链接()来创建当前目录下文件f1的符号链接文件f2,在理解stat结构内容的基础上,stat()和lstat()系统调用用于显示文件f2的信息(即stat结构的内容)。六、使用系统调用时的注意事项以下是关于错误处理的系统调用和库函数之间的一些区别。更多能力仍然需要通过规划来积累。(1)对于studio库中的函数,当发生错误时,将返回一个预定义的常量EOF或。空;发生错误时,许多库函数通常返回0或1;一些库函数返回回到某种错误代码

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论