شناساگر فایل


داستان

داستان این تمرین از این فرض آغاز می‌شود که پسوند فایل را با قالب باینری فایل مقایسه کنیم تا به این ترتیب مفاهیم داده‌ی باینری، تطبیق الگو و کدگذاری رشته را بکاوند. از دانشجو خواسته می‌شود چند تابع بنویسد تا نوع رسانه‌ی مورد انتظار را با نوع رسانه‌ی کدگذاری‌شده‌ی فایل مقایسه کنند.

کارها

این داستان به تعریف تابع‌های زیر کمک می‌کند:

  • برگرداندن نوع رسانه از روی پسوند رشته‌ای.
  • برگرداندن نوع رسانه از روی قالب باینری فایل.
  • مقایسه‌ی نوع رسانه‌ی مورد انتظار از پسوند رشته‌ای با نوع واقعی به‌دست‌آمده از فایل باینری.

مرجع تمرین

نوع فایل پسوند رایج نوع رسانه «امضا»ی باینری از نخستین بایت‌ها
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

پیاده‌سازی‌ها