博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
系统编程之文件编程file_cp
阅读量:3679 次
发布时间:2019-05-21

本文共 1053 字,大约阅读时间需要 3 分钟。

#include <string.h>
#include 
#include 
#include 
 
#define BUFFER_SIZE 1024
 
int main(int argc, char ** argv)
{
FILE *from_fd;
FILE *to_fd;
long file_len=0;
char buffer[BUFFER_SIZE];
// char *ptr;
 
/*判断入参*/
if(argc!=3)
{
printf("Usage:%s fromfile tofile\n",argv[0]);
exit(1);
}
 
/*打开源文件*/
if((from_fd=fopen(argv[1],"rb"))==NULL)
{
printf("Open %s Error\n",argv[1]);
exit(1);
}
 
/*创建目的文件
*  w      Truncate  file  to zero length or create text file for writing.
The stream is positioned at the beginning of the file.
*/
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("from fiel size id %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);
}
fclose(from_fd);
fclose(to_fd);
exit(0);
 
}

转载地址:http://kjwdn.baihongyu.com/

你可能感兴趣的文章
LeetCode101. 对称二叉树 (递归) + (迭代)
查看>>
LeetCode135. 分发糖果
查看>>
LeetCode142. 环形链表 II(快慢指针)
查看>>
删数【DP】
查看>>
jzoj解压字符串【DFS】
查看>>
Python3的安装(Ubuntu的Linux中)
查看>>
Linux命令(常用整理,未完待续)
查看>>
编码问题的故事(ANSI、ASCII、Unicode,UTF8和UTF16)
查看>>
python2和python3解包区别(以及eval函数使字符串转列表)
查看>>
Python算法和数据结构(一)——collections模块
查看>>
剑指offer(4)——二维数组查找(python 实现)
查看>>
MySQL的安装(Windows)
查看>>
你真的知道a,b = b,a是怎么实现的吗?(python交换逻辑)
查看>>
剑指offer(3)——寻找数组中的重复数
查看>>
python中的lambda匿名函数
查看>>
我最欣赏的男人
查看>>
「SQL数据分析系列」12. 事务
查看>>
c语言数据结构共享堆栈
查看>>
数据库学习笔记之数据库系统的概述
查看>>
用户设计体验概述
查看>>