从源文件中读入2048个字节到目标文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从源文件中读入2048个字节到目标文件相关的知识,希望对你有一定的参考价值。

该程序演示了fopen,fread,fwrite的基础用法。

/*
功能说明:
    从源文件中读入2048个字节到目标文件
代码说明:

实现方式:
    该程序演示了fopen,fread,fwrite的基础用法。
限制条件或者存在的问题:
    无
*/

#include <stdio.h>
#include <stdlib.h>

#define BUFFER_SIZE 2048

int main(int argc, char ** argv)
{
    if (argc != 2)
    {
        printf("parameter error! usage:\n\t[%s file_path_name]\n", argv[0]);

        return -1;
    }

    FILE *fp_read = fopen(argv[1], "rb");
    if (!fp_read)
    {
        printf("open read file [%s] error!\n", argv[1]);

        return -2;
    }

    FILE *fp_write = fopen("file_name.dat", "wb");
    if (!fp_write)
    {
        printf("open write file [file_name.dat] error!\n");

        fclose(fp_read);

        return -3;
    }

    char buffer[BUFFER_SIZE + 1] = { 0 };
    if (fread(buffer, BUFFER_SIZE, 1, fp_read) != 1) // fread就是从文件指示符中读取指定大小的内容到内存中。它与fgets是不一样的。
    {
        printf("read file [%s] error!\n", argv[1]);

        fclose(fp_read);
        fclose(fp_write);

        return -4;
    }

    if (fwrite(buffer, BUFFER_SIZE, 1, fp_write) != 1)
    {
        printf("write file [file_name.dat] error!\n");

        fclose(fp_read);
        fclose(fp_write);

        return -5;
    }

    fclose(fp_read);
    fclose(fp_write);

    return 0;
}

这个代码可以复用到我现在的工作中。

以上是关于从源文件中读入2048个字节到目标文件的主要内容,如果未能解决你的问题,请参考以下文章

当从URL下载文件时,为什么我们要读入字节数组?

VB如何读取一个图片,保存到字节数组中

从 QLocalSocket 读取超过 2048 个字节

文件操作-dd

14.VisualVM使用详解15.VisualVM堆查看器使用的内存不足19.class文件--文件结构--魔数20.文件结构--常量池21.文件结构访问标志(2个字节)22.类加载机制概(代码片段

缓冲流的使用:BufferedInputStreamBufferedOutputStreamBufferedReaderBufferedWriter