creo que lo que realmente quiere es leer un fichero entero en un buffer
para ello lo mas simple:
char * LeeUnFichero(char * fname)
{
FILE * f=fopen(fname,"rb");
if (f==NULL) //malamente!
return NULL;
fseek(f,0,SEEK_END); //movemos el pointer al final
long size=ftell(f); //tenemos el tamaño al leer la posicion del pòinter
fseek(f,0,SEEK_SET); //volvemos al principio
char * buffer=(char*)malloc(size*sizeof(char));
if (buffer==NULL) //no memory!!
return NULL;
fread(buffer,sizeof(char),size,f); //leo x bytes del file en buffer
fclose(f); //cerramos
return buffer;
}
esta funcion le pasas un nombre de fichero y lo abre y te devuelve el contenido en un buffer.