linux 操作系统 文件复制 操作

  • 格式:doc
  • 大小:175.00 KB
  • 文档页数:4

下载文档原格式

  / 4
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

“网络操作系统”课程

实验报告

姓名:

学号:

专业:计算机科学与技术

编制时间:2012年5月日

指导教师:

北京联合大学-信息学院编制

Linux –文件的系统调用

1.实验目的

熟悉有关文件的系统调用,学习文件系统的系统调用命令,提高对文件系统实现功能的理解和掌握。使用fopen、fread、fwrite 等系统调用用C语言编程实现复制文件。

2.实验过程

1.在stu2文件夹里建立hello.c

2.在hello.c文件里编辑源代码。

3.在桌面右击打开终端,返回到stu根目录

编译c文件

gcc -o hello.out hello.c

运行文件:

./ hello.out

3.实验步骤及分析

1.事先在stu2文件夹中建立一个文件hxh.txt,打开并输入I’m huxihuan!!!

2.在hello.c文件中输入:

#include

Int main()

{

int len;

char *buffer[1024];

FILE *in,*out;//定义两个文件流,分别用于文件的读取和写入

if ((in=fopen(“/home/stu2/hxh.txt”,”r”))==NULL){//打开源文件的文件流,其意义是在当前目录home/stu2/下打开文件hxh.txt,只允许进行“读”操作,并使in指向该文件printf(“the hxh.txt can’t open\n”);

exit(0);//exit(0)作用是关闭所有打开的文件,并终止程序的执行。参数0表示程序正常结束,非0参数通常表示不正常的程序结束。

}

if((out=fopen(“/home/stu2/hxh1.txt”,”w”))==NULL){//打开目标文件的文件流,其意义是在当前目录home/stu2/下打开文件hxh1.txt,只允许进行“写”操作,并使out指向该文件

printf(“the file hxh1.txt can’t open\n”);

exit(0);

}

while((len=fread(buffer,1,1024,in))>0)//源文件中读取数据并放到缓冲区中,表示从in 所指的文件中,每次读1个字节送入字符组buffer中,连续读1024次,即读1024个字符到buffer中。第二个参数也可写成sizeof(char)

{

fwrite(buffer,1,len,out);//将缓冲区的数据写到目标文件中,表示从buffer的地址开始的内存单元按照1个字节的大小取一个数据块,写入out指向的文件中

}

fclose(out);关闭文件的写入流

fclose(in);关闭文件的读取流

return 0;

}

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)函数功能:关闭一个流

一般调用形式: int fclose(FILE *stream);。

注意:使用fclose()函数就可以把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区。

(4)函数功能: 关闭所有文件,终止正在执行的程序

一般调用形式: void exit(int status);

所在头文件:stdlib.h

说明:

exit(1)表示异常退出.这个1是返回给操作系统的不过在DOS好像不需要这个返回值exit(x)(x不为0)都表示异常退出

exit(0)表示正常退出

参数: status //程序退出的返回值.

5.实验结果

(1)编译、运行:

(2)结果

5. 实验小结

经过此次的实验,实现了如何在Linux操作系统中如何使用文件的调用,巩固了文件系统调用的函数和参数的各代表的意义。