#include <stdio.h>
#include <stdlib.h>
#define BUFFSIZE 1024
int main(int arc, char *argv[])
{
FILE *fin;
FILE *fout;
char *buff;
int ret;
if (arc != 3)
{
printf("Usage: %s src_file dest_file\n", argv[0]);
return -1;
}
fin = fopen(argv[1], "r");
if (NULL == fin)
{
perror(argv[1]);
return -2;
}
fout = fopen(argv[2],"w");
if (NULL == fout)
{
perror(argv[1]);
goto err0;
}
buff = malloc(BUFFSIZE);
if (NULL == buff)
{
fprintf(stderr, "molloc failed\n");
goto err1;
}
while (1)
{
ret = fread(buff, 1, BUFFSIZE, fin);
if (ret != BUFFSIZE)
{
fwrite(buff, ret, 1, fout);
}
else
{
fwrite(buff, BUFFSIZE, 1, fout);
}
if (feof(fin))
break;
}
fclose(fin);
fclose(fout);
free(buff);
return 0;
err2:
free(buff);
err1:
fclose(fout);
err0:
fclose(fin);
return -3;
}