您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > linux 操作系统 文件复制 操作
“网络操作系统”课程实验报告姓名:学号:专业:计算机科学与技术编制时间:2012年5月日指导教师:北京联合大学-信息学院编制1Linux–文件的系统调用1.实验目的熟悉有关文件的系统调用,学习文件系统的系统调用命令,提高对文件系统实现功能的理解和掌握。使用fopen、fread、fwrite等系统调用用C语言编程实现复制文件。2.实验过程1.在stu2文件夹里建立hello.c2.在hello.c文件里编辑源代码。3.在桌面右击打开终端,返回到stu根目录编译c文件gcc-ohello.outhello.c运行文件:./hello.out3.实验步骤及分析1.事先在stu2文件夹中建立一个文件hxh.txt,打开并输入I’mhuxihuan!!!2.在hello.c文件中输入:#includestdio.hIntmain(){intlen;char*buffer[1024];FILE*in,*out;//定义两个文件流,分别用于文件的读取和写入if((in=fopen(“/home/stu2/hxh.txt”,”r”))==NULL){//打开源文件的文件流,其意义是在当前目录home/stu2/下打开文件hxh.txt,只允许进行“读”操作,并使in指向该文件printf(“thehxh.txtcan’topen\n”);exit(0);//exit(0)作用是关闭所有打开的文件,并终止程序的执行。参数0表示程序正常结束,非0参数通常表示不正常的程序结束。}if((out=fopen(“/home/stu2/hxh1.txt”,”w”))==NULL){//打开目标文件的文件流,其意义是在当前目录home/stu2/下打开文件hxh1.txt,只允许进行“写”操作,并使out指向该文件printf(“thefilehxh1.txtcan’topen\n”);exit(0);}while((len=fread(buffer,1,1024,in))0)//源文件中读取数据并放到缓冲区中,表示从in所指的文件中,每次读1个字节送入字符组buffer中,连续读1024次,即读1024个字符到buffer中。第二个参数也可写成sizeof(char){2fwrite(buffer,1,len,out);//将缓冲区的数据写到目标文件中,表示从buffer的地址开始的内存单元按照1个字节的大小取一个数据块,写入out指向的文件中}fclose(out);关闭文件的写入流fclose(in);关闭文件的读取流return0;}4.注释(1)函数功能:用来打开一个文件,一般调用形式:文件指针名=fopen(文件名,使用文件方式);说明:“文件指针名”必须是被说明为FILE类型的指针变量;“文件名”是被打开文件的文件名;“使用文件方式”是指文件的类型和操作要求。“文件名”是字符串常量或字符串数组。(2)函数功能:用来读写一个数据块。一般调用形式:fread(buffer,size,count,fp);fwrite(buffer,size,count,fp);说明:buffer:是一个指针,对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。size:要读写的字节数;count:要进行读写多少个size字节的数据项;fp:文件型指针。注意:1.完成次写操(fwrite())作后必须关闭流(fclose());2.完成一次读操作(fread())后,如果没有关闭流(fclose()),则指针(FILE*fp)自动向后移动前一次读写的长度,不关闭流继续下一次读操作则接着上次的输出继续输出。(3)函数功能:关闭一个流一般调用形式:intfclose(FILE*stream);。注意:使用fclose()函数就可以把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区。(4)函数功能:关闭所有文件,终止正在执行的程序一般调用形式:voidexit(intstatus);所在头文件:stdlib.h说明:exit(1)表示异常退出.这个1是返回给操作系统的不过在DOS好像不需要这个返回值exit(x)(x不为0)都表示异常退出exit(0)表示正常退出参数:status//程序退出的返回值.5.实验结果(1)编译、运行:3(2)结果5.实验小结经过此次的实验,实现了如何在Linux操作系统中如何使用文件的调用,巩固了文件系统调用的函数和参数的各代表的意义。
本文标题:linux 操作系统 文件复制 操作
链接地址:https://www.777doc.com/doc-3382257 .html