داستان این تمرین از این فرض آغاز میشود که پسوند فایل را با قالب باینری فایل مقایسه کنیم تا به این ترتیب مفاهیم دادهی باینری، تطبیق الگو و کدگذاری رشته را بکاوند. از دانشجو خواسته میشود چند تابع بنویسد تا نوع رسانهی مورد انتظار را با نوع رسانهی کدگذاریشدهی فایل مقایسه کنند.
این داستان به تعریف تابعهای زیر کمک میکند:
| نوع فایل | پسوند رایج | نوع رسانه | «امضا»ی باینری از نخستین بایتها |
|---|---|---|---|
| ELF |
none یا "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 |