C语言实现二进制文件读写

C语言实现二进制文件读写

 

我一直觉得二进制文件读写是个很容易的事,所以一直没在意,最近在写一个http客户端,实现文件下载的时候,发现总有问题,后来才发现是忘记写文件用二进制方式,惭愧的很啊。

然后,就在网上搜索了一下,发现通过C语言实现二进制文件读写的资料居然出奇的少,这让我很愤怒,因为虽然这东西很简单,但是对于初学者,往往会需要花很长的时间去弄,一旦明白,又发现花的时间很不值得,罢了,这里通过一个文件拷贝的例子来讲讲二进制文件的读写吧。

先介绍函数,我们一共要用到三个函数,fopenfreadfwrite。二进制读写的顺序是用fopen以二进制方式打开读写文件,然后使用freadfwrite两个函数将数据写入二进制文件中。下面我们看看一个拷贝程序的源码:

 

Copy.c:

#include <stdio.h>

#include <stdlib.h>

 

#define MAXLEN 1024

 

int main(int argc, char *argv[])

{

    if( argc < 3 )

    {

        printf("usage: %s %s/n", argv[0], "infile outfile");

        exit(1);

    }

   

    FILE * outfile, *infile;

    outfile = fopen(argv[2], "wb" );

    infile = fopen(argv[1], "rb");

    unsigned char buf[MAXLEN];

    if( outfile == NULL || infile == NULL )

    {

        printf("%s, %s",argv[1],"not exit/n");

        exit(1);

    }   

   

    int rc;

    while( (rc = fread(buf,sizeof(unsigned char), MAXLEN,infile)) != 0 )

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值