fwrite实现文件复制

 //@ author 成鹏致远
//@ net http://infodown.tap.cn
//@ qq 552158509
//@ blog lcw.cnblogs.com #include <stdio.h>
#include <stdlib.h>
#include <string.h> #define BUFSIZE 100 int main(int argc, char * argv[])
{
FILE *read_fp,*write_fp;
char buf[BUFSIZE]; if( != argc)
{
printf("Usage:%s <origin_filename> <target_filename> \n",argv[]);
exit();
}
if(NULL == (read_fp = fopen(argv[],"r")))
{
perror("malloc");
exit();
}
if(NULL == (write_fp = fopen(argv[],"w")))
{
perror("malloc");
exit();
} while(!feof(read_fp) && !ferror(read_fp))
{
bzero(buf,BUFSIZE);//在使用前一定要先清缓冲
fread(buf,BUFSIZE,,read_fp);//读取文件
fwrite(buf,strlen(buf),,write_fp);//写文件,注意要用strlen,因为最后一次可以装不满缓冲区
} fclose(read_fp);
fclose(write_fp); return ;
}

fgets实现文件复制

 //@ author 成鹏致远
//@ net http://infodown.tap.cn
//@ qq 552158509
//@ blog lcw.cnblogs.com //copy file by line #include <stdio.h>
#include <stdlib.h> #define MAXSIZE 1024 int main(int argc, char * argv[])
{
FILE *read_fp,*write_fp;
char buf[MAXSIZE]; if( != argc)
{
printf("Usage:%s <origin_filename> <target_filename> \n",argv[]);
exit();
}
if(NULL == (read_fp = fopen(argv[],"r")))
{
perror("malloc");
exit();
}
if(NULL == (write_fp = fopen(argv[],"w")))
{
perror("malloc");
exit();
} while(NULL != fgets(buf,MAXSIZE,read_fp))//fgets()浼氭妸'\n'绠楀湪缂撳啿鍖轰腑
{
fputs(buf,write_fp);//paste file
} fclose(read_fp);
fclose(write_fp); return ;
}

fgetc实现文件

 //@ author 成鹏致远
//@ net http://infodown.tap.cn
//@ qq 552158509
//@ blog lcw.cnblogs.com //copy file by char #include <stdio.h>
#include <stdlib.h> int main(int argc, char * argv[])
{
FILE *read_fp,*write_fp;
char tmp; if( != argc)
{
printf("Usage:%s <origin_filename> <target_filename> \n",argv[]);
exit();
}
if(NULL == (read_fp = fopen(argv[],"r")))
{
perror("malloc");
exit();
}
if(NULL == (write_fp = fopen(argv[],"w")))
{
perror("malloc");
exit();
} while(EOF !=(tmp= fgetc(read_fp)))//copy file
{
fputc(tmp,write_fp);//paste file
} fclose(read_fp);
fclose(write_fp); return ;
}

【C/C++】标准IO操作的更多相关文章

  1. 标准IO操作

    前言 本文介绍使用java进行简单的标准IO操作. 操作步骤 1. 定义一个Scanner对象 2. 调用该对象的input函数族 (参见下面代码) 3. input函数的返回结果即是获取到的输入 示 ...

  2. 深究标准IO的缓存

    前言 在最近看了APUE的标准IO部分之后感觉对标准IO的缓存太模糊,没有搞明白,APUE中关于缓存的部分一笔带过,没有深究缓存的实现原理,这样一本被吹上天的书为什么不讲透彻呢?今天早上爬起来赶紧找了 ...

  3. 标准IO

    标准IO由ISO C 标准的IO库,它处理了很多底层细节,比如合适的缓冲大小等等,因此更易于使用,但是也引入了一些其他问题. 流向 标准IO使用FILE对象关联流,流可以是面向宽字节的也可以是面向单字 ...

  4. Linux IO操作——RIO包

    1.linux基本I/O接口介绍 ssize_t read(int fd, void *buf, size_t count); ssize_t write(int fd, void *buf, siz ...

  5. linux系统IO操作

    本文重点说明下面内容: 什么是标准IO,什么是文件IO? 什么是Direct IO? O_SYNC标识有什么意义? 各个层面的缓存如何同步? 还在page cache中的脏页可以读写吗? IO路径上的 ...

  6. UNIX高级环境编程(6)标准IO函数库 - 流的概念和操作

    标准IO函数库隐藏了buffer大小和分配的细节,使得我们可以不用关心预分配的内存大小是否正确的问题. 虽然这使得这个函数库很容易用,但是如果我们对函数的原理不熟悉的话,也容易遇到很多问题.   1 ...

  7. ca75a_c++_标准IO库-利用流对象把文件内容读取到向量-操作文件

    /*ca75a_c++_标准IO库习题练习习题8.3,8.4,8.6习题8.9.8.10 ifstream inFile(fileName.c_str());1>d:\users\txwtech ...

  8. [APUE]标准IO库(下)

    一.标准IO的效率 对比以下四个程序的用户CPU.系统CPU与时钟时间对比 程序1:系统IO 程序2:标准IO getc版本 程序3:标准IO fgets版本 结果: [注:该表截取自APUE,上表中 ...

  9. [APUE]标准IO库(上)

    一.流和FILE对象 系统IO都是针对文件描述符,当打开一个文件时,即返回一个文件描述符,然后用该文件描述符来进行下面的操作,而对于标准IO库,它们的操作则是围绕流(stream)进行的. 当打开一个 ...

随机推荐

  1. Linux-使用 yum 升级 gcc 到 4.8

    wget http://people.centos.org/tru/devtools-2/devtools-2.repo mv devtools-2.repo /etc/yum.repos.d yum ...

  2. spdk 编译动态库( spdk compiles shared library )

    1,dpdk编译共享库 默认情况下都编译出静态库,如果想编译出动态库,把config/common_base文件中的CONFIG_RTE_BUILD_SHARED_LIB改成y即可. 2,spdk编译 ...

  3. Linux下Valgrind的使用概述 来源:Linux社区 作者:dndxhej

    本地使用情况,在Ubantu系统上编写的测试性能: 1,下载:sudo apt-get install valgrind; 2,验证是否安装成功:试着valgrind ls -l来检测是否正常工作: ...

  4. Linux 的僵尸(zombie)进程

    可能很少有人意识到,在一个进程调用了exit之后,该进程 并非马上就消失掉,而是留下一个称为僵尸进程(Zombie)的数据结构.在Linux进程的5种状态中,僵尸进程是非常特殊的一种,它已经放弃了几乎 ...

  5. dpkg卸载deb包

    一.背景: 一个脚本安装mysql,结果提示缺少依赖库,安装失败. 二.查询: 此时查询deb文件已经安装的情况,得到这个结果: root@debian:~# dpkg -l |grep mysql- ...

  6. WinForm DataGridView新增加行

      1.不显示最下面的新行 通常 DataGridView 的最下面一行是用户新追加的行(行头显示 * ).如果不想让用户新追加行即不想显示该新行,可以将 DataGridView 对象的 Allow ...

  7. stm32定时器主从模式

    TIM2作master:TIM3,TIM4作slave 定时器2事件更新被用作触发输出TRGO 从定时器TIM3,TIM4工作在从模式:门控模式 触发选择设为:ITR1,这样TIM2的TRGO就连到了 ...

  8. SQL中特殊符号的使用

    1. & 在Oracle中,& 是从需要外部输入输入的变量,PS:MySqL中可以直接用"P&G"这样的字符串,故不存在本文所说的问题 如下SQL语句就不能 ...

  9. CentOS7 安装java 环境 摘抄

    转http://www.diyhi.com/hostConfig.html 服务器环境配置 下面介绍全新安装的CentOS系统服务器安装配置商城软件服务环境的方法.演示主机操作系统为CentOS 7. ...

  10. 正则和xpath在网页中匹配字段的效率比较

    1. 测试页面是  https://www.hao123.com/,这个是百度的导航 2. 为了避免网络请求带来的差异,我们把网页下载下来,命名为html,不粘贴其代码. 3.测试办法: 我们在页面中 ...