L'histoire de cet exercice repose sur la comparaison entre l'extension d'un fichier et le format binaire de ce fichier, afin d'explorer les notions de données binaires, de correspondance de motifs et d'encodage des chaînes de caractères. L'apprenant a pour tâche d'écrire quelques fonctions qui comparent le type MIME attendu au type MIME encodé dans le fichier.
L'histoire amène à définir plusieurs fonctions :
| Type de fichier | Extension courante | Type MIME | « signature » binaire des premiers octets |
|---|---|---|---|
| ELF |
none ou "exe"
|
"application/octet-stream" |
0x7F, 0x45, 0x4C, 0x46 |
| BMP | "bmp" |
"image/bmp" |
0x42, 0x4D |
| PNG | "png" |
"image/png" |
0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A |
| JPG | "jpg" |
"image/jpg" |
0xFF, 0xD8, 0xFF |
| GIF | "gif" |
"image/gif" |
0x47, 0x49, 0x46 |