用于拷贝文件(文本文件或其他类型的大型文件)的函数
用于拷贝文件(文本文件或其他类型的大型文件)的函数
努力喵 发表于2年前
用于拷贝文件(文本文件或其他类型的大型文件)的函数
  • 发表于 2年前
  • 阅读 2
  • 收藏 0
  • 点赞 0
  • 评论 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;
}


共有 人打赏支持
粉丝 6
博文 105
码字总数 34117
×
努力喵
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: