इस अभ्यास की कहानी फाइल एक्सटेंशन की बाइनरी फाइल फॉर्मेट से तुलना करने के आधार पर बनी है। इससे बाइनरी डेटा, पैटर्न मैचिंग और स्ट्रिंग एन्कोडिंग जैसी अवधारणाओं को समझने में मदद मिलती है। छात्र को कुछ ऐसे फंक्शन लिखने हैं जो अपेक्षित मीडिया टाइप की तुलना फाइल के एन्कोड किए गए मीडिया टाइप से करें।
यह कहानी इन फंक्शनों को बनाने में मदद करती है:
| फाइल टाइप | सामान्य एक्सटेंशन | मीडिया टाइप | पहले कुछ बाइट से मिली बाइनरी 'सिग्नेचर' |
|---|---|---|---|
| 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 |