You are obviously doing something wrong so here you go.
This was slapped together so you may want to add more error checking or fix some syntax errors (if there are any)
Code
int copyFile(char *src, char *dst)
{
int size = 0;
char *buff;
FILE *in = NULL;
FILE *out = NULL;
in = fopen(src, "rb");
out = fopen(dst, "wb+");
if(!in || !out)
return -1; //Failed
fseek(in, 0, SEEK_END);
size = ftell(in);//Get total bytes
fseek(in, 0, SEEK_SET);//Back to beginning
buff = (char*)malloc(sizeof(char)*size);//Make buffer large enough to hold our data
memset(buff, 0, sizeof(char)*size);//Init buffer to all 0
fread(buff, sizeof(char), size, in);//Read it all into buffer
fwrite(buff, sizeof(char), size, out);//Output buffe
fclose(in); //Close files
fclose(out);
free(buff); //Deallocate buffer
return 1; //Success
}