文档章节

用于拷贝文件(文本文件或其他类型的大型文件)的函数

努力喵
 努力喵
发布于 2015/10/20 22:48
字数 196
阅读 5
收藏 0
// filecopier.c -- 拷贝文件
#include <stdio.h>

int file_copy(char *oldname, char *newname);

int main(void){
  char source[80], destination[80];
  
  //获取源文件和目标文件文件名
  puts("\nEnter source file: ");
  gets(source);
  puts("\nEnter destination file: ");
  gets(destination);
  
  if(file_copy(source, destination) == 0)
    puts("Copy operation successful");
  else
    fprintf(stderr, "Error during copy operation");
  return 0;
} 

int file_copy(char *oldname, char *newname){
  FILE *fold, *fnew;
  int c;
  
  // 以二进制只读模式打开源文件
  if((fold = fopen(oldname, "rb")) == NULL)
    return -1;
  
  // 以二进制写入模式打开目标文件
  if((fnew = fopen(newname, "wb")) == NULL){
    fclose(fold);
    return -1;
  }
  
  /* 读取源文件内容,一次读取1字节,
   * 如果未达到文件末尾,
   * 将读取内容写入目标文件。 */
  
  while(1){
    c = fgetc(fold);
    
    if(!feof(fold))
      fputc(c, fnew);
    else
      break;
  }
  fclose(fnew);
  fclose(fold);
  
  return 0;
}


© 著作权归作者所有

共有 人打赏支持
努力喵
粉丝 5
博文 105
码字总数 34117
作品 0
广州
私信 提问
c++教程(二十五:Input/output with files)

C++提供了以下到/从文件的类执行输出和输入字符: ofstream:写文件的类; ifstream:读取文件类 fstream:读/写文件的类。 这些类都是直接或间接来自类istream和ostream。我们已经使用的对象...

on2way
2017/02/13
0
0
Python科学计算库-Numpy

NumPy 是 Python 语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,也是学习 python 必学的一个库。 1. 读取文件 numpy.genfromtxt() 用于...

知晓的老巢
11/05
0
0
处理PDF文档

用于处理PDF的模块是PyPDF2(区分大小写),使用pip安装。 c:pythonScripts>pip3.6 install PyPDF2Collecting PyPDF2 Downloading PyPDF2-1.26.0.tar.gz (77kB) 100% |███████████......

Grodd
2017/12/15
0
0
在Laravel中创建自己的PHP帮助函数

Laravel 为我们提供了许多内置的帮助函数,你可以在应用程序中的任何位置调用它。它们使你可以方便地处理数组和对象,路径,字符串,URL和其他类型的工作流。 尽管在 Laravel 核心中定义了许...

如来神掌
04/28
0
0
如何使用 Git 管理二进制大对象

似乎大家都认可的事就是 Git 对于大的二进制对象文件支持得不好。要记住,二进制大对象与大文本文件是不同的。虽然 Git 对大型的文本文件版本控制毫无问题,但是对于不透明的二进制文件起不了...

linux小陶
2016/12/12
29
0

没有更多内容

加载失败,请刷新页面

加载更多

数据集可视化---张量场的可视表示

中国龙-扬科
16分钟前
1
0
JavaScript创建对象方法实例小结

本文实例讲述了JavaScript创建对象方法。分享给大家供大家参考,具体如下: 最简单的方式就是创建一个Object对象,并为其添加属性和方法。 //示例代码var person=new Object()person.name=...

peakedness丶
18分钟前
1
0
GO 读写锁实现原理剖析

前言 TODO:简单说明读写锁用法及规则。 读写锁数据结构 类型定义 TODO: 源码中数据结构 TODO:讲解每个成员作用 接口定义 获取写锁 释放写锁 获取读锁 释放读锁 场景分析 写锁阻止写锁 TODO...

恋恋美食
22分钟前
1
0
Java核心(二)深入理解线程池ThreadPool

本文你将获得以下信息: 线程池源码解读 线程池执行流程分析 带返回值的线程池实现 延迟线程池实现 为了方便读者理解,本文会由浅入深,先从线程池的使用开始再延伸到源码解读和源码分析等高...

王磊的博客
23分钟前
2
0
web项目中的乱码问题原理分析

Java web开发过程经常遇到乱码,本篇我们探讨一下乱码产生的原因与解决思路。 一次完整的Web请求会有4次编解码转换,如下所示。 第一次:客户端(通常为浏览器)将字符转换成TCP字节流发向服...

fame_yao
27分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部