Bonjour,
mon petit programme sert à copier un fichier passé en paramètre.

j'ai testé avec une image bmp.
le fichier crée ne peut pas être lu par la visionneuse Window, pourtant, si je le compare a son original dans un éditeur de texte, son contenu est identique.

comment cela s'explique ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
 
int main( int argc, char *argv[] ){
    if( argc == 2 ){
    FILE *f = fopen(  argv[1] , "r" );
        if( f ){
            char *s = malloc( strlen( argv[1] ) + 4 );
            strcpy( s , "cop_" );
            strcat( s , argv[1] );
            FILE *d = fopen( s , "w+" );
            int cf = fgetc( f ) , cd = EOF ;
            while( cf != EOF ){
                 cd = fputc( cf , d );
                 cf = fgetc( f );
            }
            free( s );
            printf( cd == EOF ? "erreur de copie\n" : "ok\n" );
        } else printf( "fichier manquant\n" );
    } else printf( "args: fsource\n" );
    return 0 ;
}