Copyfile 使用C方法实现
有两个重要的函数
#include <stdio.h>
size_t fread(void *pstr, size_t size_pre, size_t nmemb, FILE *stream);
size_t fwrite(const void *pstr, size_t size_pre, size_t nmemb, FILE *stream);
返回值为读取和写入的字节数;
pstr为字符数组
size_pre为每个成员的长度,如果是char,则为1
nmberb读取和写入多少个成员
#include <windows.h>
#include <stdio.h>
#define BUF_SIZE 256
char rcv[BUF_SIZE];
size_t str_in, str_out;
int main(int argc,char* argv[])
{
FILE *file_in, *file_out;
if(argc != 3)
{
printf("使用方法:copyfile_c filename1 filename2");
return 1;
}
file_in = fopen(argv[1],"rb");
if(!file_in)
{
printf("%s 文件打开失败!\n",argv[1]);
return 2;
}
file_out = fopen(argv[2],"wb");
if(!file_out)
{
printf("%s 文件打开失败!\n",argv[2]);
return 3;
}
while((str_in = fread(rcv,1,BUF_SIZE,file_in)) > 0)
{
str_out = fwrite(rcv,1,str_in,file_out);
if(str_out != str_in)
{
printf("发生了严重错误!\n");
return 4;
}
}
fclose(file_in);
fclose(file_out);
return 0;
}