#include <stdlib.h>#include <stdio.h>#include <string.h>#define BUF_LECTURE_FICHIER 300char* lire_fichier(FILE* fichier, int octet_debut, int octets_a_parcourir);int main(){ /* Initialisation */ FILE* fichier = NULL; char *file_type = NULL; int file_size = 0; /* Ouverture du fichier */ fichier = fopen("tux.bmp","r+"); if(fichier != NULL) { file_type = lire_fichier(fichier, 0, 2); file_size = atoi(lire_fichier(fichier, 2, 4)); printf("FileType : %s\nFileSize : %d\n",file_type,file_size); fclose(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;}