¿Cómo sabe fread cuando el archivo está terminado en C?

Así que no estoy del todo seguro de cómo usar fread. Tengo un archivo binario en little-endian que necesito convertir a big-endian, y no sé cómo leer el archivo. Aquí está lo que tengo hasta ahora:

FILE *in_file=fopen(filename, "rb");
char buffer[4];
while(in_file!=EOF){
    fread(buffer, 4, 1, in_file);
    //convert to big-endian.
    //write to output file.
}

No he escrito nada más todavía, pero no estoy seguro de cómo llegar al "progreso", por así decirlo. Cualquier ayuda sería apreciada.

Respuestas a la pregunta(1)

Su respuesta a la pregunta