/* Fonction auxiliaire référençant le fichier en mémoire*/
voidmap_file(charfilelongfsize) {
  int fd;                /* Descripteur du fichier */
  voidptr;             /* Début de la zone */
  struct stat st;        /* Attributs du fichier référencé */
  /* Ouverture et récupération des attributs du fichier */
  if ((stat(file, &st) != 0) ||
      (fd = open(fileO_RDWR)) < 0) {
    perror("open");
    return NULL;
  }
  /* Vérification que le fichier n'est pas vide */
  if (st.st_size == 0) {
    (voidprintf("%s: is empty\n"file);
    (voidclose(fd);
    return NULL;
  }
  /* Récupération de la taille du fichier */
  *fsize = st.st_size;
  /* Référencement du fichier en mémoire. On ajoute un octet à la
    taille du fichier pour pouvoir éventuellement ajouter le caractère
    '\0' en fin de fichier */

  ptr = mmap(NULLst.st_size+1, PROT_READ|PROT_WRITEMAP_PRIVATEfd, 0);
  (voidclose(fd);
  if (ptr == MAP_FAILED) {
    (voidprintf("%s: cannot be map\n"file);
    return NULL;
  }
  return ptr;
}