该程序演示了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;
}
工作中如果用的此类的功能,可以举一反三地修改它,写成一个公共库文件,供第三方调用。