Chinaunix首页 | 论坛 | 博客
  • 博客访问: 28280
  • 博文数量: 5
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 49
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-02 23:06
文章分类
文章存档

2014年(2)

2013年(3)

我的朋友

分类: 嵌入式

2013-11-04 21:56:05

即将加入求职大军,找些笔试题练习下。


int copy_file(char *src_file_name, char *des_file_name)
{
    FILE *fp_src = NULL;
    FILE *fp_des = NULL;
    char c = '\0';

    if ((NULL == src_file_name) || (NULL == des_file_name)) {
     printf("sourece file doesn't exist!\n");
     return -1;
 }
 
 fp_src = fopen(src_file_name, "r+");
 if (NULL == fp_src) {
     return -1;
 }

 fp_des = fopen(des_file_name, "a");
 if (NULL == fp_des) {
     return -1;
 }
 
 while ((c = fgetc(fp_src)) != EOF) {
     fputc(c, fp_des);
 }
 
 fclose(fp_src);
 fclose(fp_des);
 
 return 0;
 
}


顺便在网上找了下open和fopen两个函数的差别,转至此:
open是系统函数,fopen是ANSI标准C语言函数;
open返回的是文件描述符,通常用来打卡设备文件(LINUX系统所有设备都以文件操作),fopen返回文件指针,用来打开普通文件;
前者无缓冲,后者有缓冲,因此在随机访问文件时前者更快,在顺序访问文件时后者更快;
前者与read、write等函数搭配使用,后者与fread、fwrite等函数搭配使用;
fopen是open的进一步封装所得。
阅读(1433) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~