Comment lire un fichier binaire en c? (vidéo, images, texte)

Je suis en train de copier un fichier à partir d'une bibliothèque spécifié dans le répertoire en cours. Je peux copier des fichiers texte à la perfection. Tous les autres fichiers sont corrompus. Le programme détecte une feof avant qu'il ne devrait.

#include <stdio.h>

int BUFFER_SIZE = 1024;
FILE *source;
FILE *destination;
int n;
int count = 0;
int written = 0;

int main() {
    unsigned char buffer[BUFFER_SIZE];

    source = fopen("./library/rfc1350.txt", "r");

    if (source) {
        destination = fopen("rfc1350.txt", "w");

        while (!feof(source)) {
            n = fread(buffer, 1, BUFFER_SIZE, source);
            count += n;
            printf("n = %d\n", n);
            fwrite(buffer, 1, n, destination);
        }
        printf("%d bytes read from library.\n", count);
    } else {
        printf("fail\n");
    }

    fclose(source);
    fclose(destination);

    return 0;
}

OriginalL'auteur Collin Price | 2010-02-21