美文网首页
使用C库函数方式实现文件拷贝

使用C库函数方式实现文件拷贝

作者: 静等凌风 | 来源:发表于2016-01-25 13:32 被阅读0次

1.1实验目的

n掌握C库函数对文件操作

n掌握C库函数的常用函数文件访问用法

1.2实验内容

n使用C库函数方式实现文件拷贝功能

1.3步骤及现象

n编写程序,从待拷贝的文件中逐步读出数据到缓冲区,在把缓冲区的数据逐个写入到新创建的文件中,完成对原文件的拷贝工作

n对应代码流程图。

n进入实验代码目录lab9,根据下图参考代码编写filecp2.c程序

$vim filecp2.c

1、编写好后如下图所示:

2、用gcc编译filecp2.c文件,输入命令:$gcc filecp2.c –o filecp2

生成可执行文件filecp2

3、运行应用程序,如下图所示,将filecp2.c文件复制为test2.c,然后用diff命令

比较两个文件的内容是否一样,一样则说明拷贝正确。

1.4关键代码分析

//功能描述:该程序用C库函数方式通过从待拷贝的文件中逐步读出数据到缓冲区,再把缓冲区的数据逐个写入到新创建的文件中,完成对原文件的拷贝

#include

#include

#include

#include

#define BUFFER_SIZE 1024

intmain(intargc,char**argv)

{

FILE*from_fd;

FILE*to_fd;

longfile_len=0;

charbuffer[BUFFER_SIZE];

//判断入口参数

if(argc!=3)

{

printf("Usage:%sfromfile

tofile\n",argv[0]);

exit(1);

}

//打开源文件

if((from_fd=fopen(argv[1],"rb"))==NULL)

{

printf("Open %s

Error\n",argv[1]);

exit(1);

}

//创建目的文件

if((to_fd=fopen(argv[2],"wb"))==NULL)

{

printf("Open %s

Error\n",argv[2]);

exit(1);

}

//测文件大小

fseek(from_fd,0L,SEEK_END);

file_len=ftell(from_fd);

fseek(from_fd,0L,SEEK_SET);

printf("form file

size is %d\n",file_len);

//文件拷贝

while(!feof(from_fd))

{

fread(buffer,BUFFER_SIZE,1,from_fd);//读文件

if(BUFFER_SIZE>=file_len)

{

fwrite(buffer,file_len,1,to_fd);

}

else

{

fwrite(buffer,BUFFER_SIZE,1,to_fd);//写文件

file_len-=BUFFER_SIZE;

}

bzero(buffer,BUFFER_SIZE);//清空buffer

}

fclose(from_fd);

fclose(to_fd);

exit(0);

}

�pQn�i�

相关文章

  • 使用C库函数方式实现文件拷贝

    1.1实验目的 n掌握C库函数对文件操作 n掌握C库函数的常用函数文件访问用法 1.2实验内容 n使用C库函数方式...

  • 文件快速拷贝-reflink

    REFLINK是实现文件快速拷贝的基础。 最初实现文件快速拷贝的方式是使用hardlinks。但是这样的方式存在很...

  • Javascript中的深拷贝

    JS 中深拷贝的几种实现方法 1、使用递归的方式实现深拷贝 //使用递归的方式实现数组、对象的深拷贝 functi...

  • python 复制文件

    使用shutil来实现文件的拷贝

  • 第十五章:源文件与程序

    C头文件实现C++头文件方式 函数指针image.png 头文件的使用image.pngimage.pngimag...

  • python_对文件的操作/读取配置文件

    使用shutil来实现文件的拷贝 shutil.copyfile(src, dst) #文件到文件的拷贝,其中ds...

  • memmove 和 memcpy的区别

    memcpy和memmove()都是C语言中的库函数,在头文件string.h中,作用是拷贝一定长度的内存的内容,...

  • 使用系统调用方式实现文件拷贝

    1.1实验目的 n掌握Linux系统调用对文件操作 n掌握linux系统调用的常用函数文件访问用法 1.2实验内容...

  • JS深拷贝的实现方法

    1、使用递归的方式实现深拷贝 2、通过 JSON 对象实现深拷贝 注意:JSON对象实现深拷贝无法实现对对象中方法...

  • C/C++函数库

    C 语言中有大量的标准库函数,根据功能不同,声明于不同的头文件中。这些库函数在C++中也能使用。下面分类总结了一些...

网友评论

      本文标题: 使用C库函数方式实现文件拷贝

      本文链接:https://www.haomeiwen.com/subject/tbtdkttx.html