#include <stdio.h>
#include <stdlib.h>

// définition du grain des opérations de lecture/écriture : SIZE octets
#define SIZE 10

int main(int argc,char *argv[]) {
  FILE *r;
  FILE *w;
  char t[SIZE];
  size_t lus;

  r = fopen("a.data","r"); // en cas d'échec renvoie NULL
  if (r==NULL) {
    perror("a.data"); // affiche le message d'erreur correspondant au "code d'erreur " contenu dans errno
    exit(1); // sortie du programme en échec
  }
  w = fopen("b.data","w");
  if (w==NULL) {
    fclose(r);
    fprintf(stderr,"pbm b.data");
    exit(1);
  }
  while ((lus=fread(t,sizeof(char),SIZE,r))>0) { // on tente de lire SIZE octets
    fwrite(t,sizeof(char),lus,w); // on en écrit autant qu'on en a lu
  }
  fclose(w); // relâchement des ressources
  fclose(r);
  exit(0); // sortie du programme en mode "tout s'est bien passé"
}