rendered paste body#include <stdlib.h>#include <stdio.h>#include <string.h> #define BUF_LECTURE_FICHIER 300typedef struct bitmap bitmap;struct bitmap{ /* Le fichier */ FILE* fichier; /* Bitmap file header */ char *file_type; int file_size; /* Bitmap info header */ int largeur; int hauteur;};char *lire_fichier(FILE* fichier, int octet_debut, int octets_a_parcourir);int main(){ printf("\n-----[ AscUrPic ]----- \n"); /* Initialisation */ bitmap image = {NULL, NULL, 0, 0, 0, NULL}; /* Ouverture du fichier */ image.fichier = fopen("tux.bmp","r+"); if(image.fichier != NULL) { image.file_type = lire_fichier(image.fichier, 0, 2); image.file_size = lire_fichier(image.fichier, 2, 4); image.largeur = lire_fichier(image.fichier, 14, 4); image.hauteur = lire_fichier(image.fichier, 18, 4); /* Verbose */ printf("FileType : %s\nFileSize : %d\nSize : %dx%d\n", image.file_type, image.file_size, image.largeur, image.hauteur); if( strcmp(image.file_type,"BM") ) { printf("Erreur : Type de fichier invalide \n"); } else { } fclose(image.fichier); } else { printf("Impossible d'ouvrir le fichier\n"); } return 0;}/* Permet de lire des parties du fichier */char *lire_fichier(FILE* fichier, int octet_debut, int octets_a_parcourir){ int i; /* Petite vérification */ if(octets_a_parcourir > BUF_LECTURE_FICHIER) { printf("Buffer de lecture trop faible"); exit(0); } /* On prépare un espace mémoire pour placer la chaine */ char *chaine = malloc( (BUF_LECTURE_FICHIER+1) * sizeof(char) ); /* On se place à l'octet de début du fichier */ fseek(fichier, octet_debut, SEEK_SET); /* On ajoute un à un les caractères */ for (i = 0 ; i < octets_a_parcourir ; i++) { chaine[i] = fgetc(fichier); } /* On termine proprement la chaine */ chaine[i+1] = '\0'; /* et on renvoit l'adresse d'où est stoquée la chaine */ return chaine;}