Lesen der gesamten Textdatei in ein Zeichen-Array in C

Ich möchte den Inhalt einer Textdatei in ein Zeichen-Array in C einlesen. Zeilenumbrüche müssen beibehalten werden.

Wie mache ich das? Ich habe im Web einige C ++ - Lösungen gefunden, aber keine einzige C-Lösung.

Bearbeiten: Ich habe jetzt den folgenden Code:

void *loadfile(char *file, int *size)
{
    FILE *fp;
    long lSize;
    char *buffer;

    fp = fopen ( file , "rb" );
    if( !fp ) perror(file),exit(1);

    fseek( fp , 0L , SEEK_END);
    lSize = ftell( fp );
    rewind( fp );

    /* allocate memory for entire content */
    buffer = calloc( 1, lSize+1 );
    if( !buffer ) fclose(fp),fputs("memory alloc fails",stderr),exit(1);

    /* copy the file into the buffer */
    if( 1!=fread( buffer , lSize, 1 , fp) )
      fclose(fp),free(buffer),fputs("entire read fails",stderr),exit(1);

    /* do your work here, buffer is a string contains the whole text */
    size = (int *)lSize;
    fclose(fp);
    return buffer;
}

Ich erhalte eine Warnung: Warnung: Die Zuweisung macht den Zeiger aus einer Ganzzahl ohne Umwandlung. Dies ist auf der Liniesize = (int)lSize;. Wenn ich die App starte, werden die Standardeinstellungen verwendet.

Aktualisieren Der obige Code funktioniert jetzt. Ich habe den Segfault gefunden und eine andere Frage gestellt. Danke für die Hilfe