Questo codice legge un intero file in un buffer che ha la dimensione del file. Se non vuoi leggere l'intero file ti allochi un buffer di dimensione fissa, ad esempio 1024 * 500 bytes (500KB), quindi esegui la fread in un ciclo while che continua finchè feof(pFile) non restituisce 1 indicando che la fine del file è stata raggiunta.
Codice PHP:
/* fread example: read a complete file */
#include <stdio.h>
#include <stdlib.h>
int main () {
FILE * pFile;
long lSize;
char * buffer;
pFile = fopen ( "myfile.txt" , "rb" );
if (pFile==NULL) exit (1);
// obtain file size.
fseek (pFile , 0 , SEEK_END);
lSize = ftell (pFile);
rewind (pFile);
// allocate memory to contain the whole file.
buffer = (char*) malloc (lSize);
if (buffer == NULL) exit (2);
// copy the file into the buffer.
fread (buffer,1,lSize,pFile);
/*** the whole file is loaded in the buffer. ***/
// terminate
fclose (pFile);
free (buffer);
return 0;
}