Формат файлу (або тип файлу) в інформатиці — це усталений стандарт запису інформації у файлі даного типу. Спосіб кодування інформації або даних залежить від застосованої комп'ютерної програми. Часто формат файлу визначається його розширенням.
Загальноприйнята в обчислювальній техніці концепція файлу — неструктурована послідовність байтів. Комп'ютерні програми, що зберігають у файлах структуровані дані, повинні якось перетворювати їх в послідовність байтів і навпаки (в ООП ці операції називаються, відповідно, «серіалізацією» і «десеріалізацією» ; для текстової інформації останнє також називається «розбір» або «парсинг»). Алгоритм цього перетворення, а також угоди про те, як різні фрагменти інформації розташовуються усередині файлу, і складають його «формат».
Різні формати файлів можуть різнитися ступенем деталізації, один формат може бути «надбудовою» над іншим або використовувати елементи інших форматів. Наприклад, текстовий формат накладає лише загальні обмеження на структуру даних. Формат HTML встановлює додаткові правила на внутрішній устрій файлу, але при цьому будь-який HTML-файл є в той же час текстовим файлом.
Специфікації
Для багатьох форматів файлів існують опубліковані специфікації, в яких детально описано структуру файлів даного формату, те, як програми повинні кодувати дані для запису в цей формат і як декодувати їх при зчитуванні. Більшість таких специфікацій вільнодоступні, деякі поширюються за плату.
Іноді компанії можуть вважати певні формати файлів своєю комерційною таємницею і не публікувати їх. Добре відомий приклад — формати файлів пакету Microsoft Office. У деяких випадках компанія, що випустила додаток, просто не вважає за потрібне витрачати час на написання докладної специфікації.
Якщо специфікація формату недоступна, то для забезпечення сумісності програми з даним форматом доводиться займатися зворотньою розробкою. У більшості або в усіх країнах формати файлів не захищені законами про авторські права. Проте в деяких країнах патентами можуть бути захищені алгоритми, які використовуються для кодування даних у будь-який формат. Наприклад, у широко поширеному форматі GIF використовувався патентований алгоритм, що призвело до розробки альтернативного формату PNG.
Визначення типу файлу
— це інформація для швидкої ідентифікації вмісту файлу операційною системою і користувачем без необхідності зчитування всього вмісту файлу. Завдяки цій інформації, користувач приблизно знає тип інформації у файлі, а в операційній системі може бути знайдена програма для обробки файлів даного типу. З історичних причин, в різних операційних системах використовуються різні підходи для вирішення цього завдання.
Магічне число
Одним зі способів, який часто асоціюється з UNIX та похідними ОС, є зберігати метадані про тип файлу всередині самого файлу. Це називають сигнатурою файлу, або магічним числом. Початково, термін «магічне число» (англ. Magic number) використовувався для специфічного набору двобайтових ідентифікаторів на початку файлу. Але так як будь-яка бінарна послідовність може розглядатись як число, довільна властивість формату файлу що його однозначно ідентифікує, може використовуватись в цій якості. GIF картинки, наприклад, завжди починаються текстом GIF87a або GIF89a закодованим в ASCII, залежно від стандарту якому вони відповідають. Багато типів файлів, особливо текстових важче відрізнити цим методом. Наприклад HTML файли, можуть починатись рядком <html> (в різному регістрі), або відповідним визначенням типу документа, наприклад <!DOCTYPE HTML> для HTML 5, або, для XHTML, ідентифікатором XML який починається з <?xml. Файли можуть також починатись з коментарів HTML, випадкового тексту чи кількох порожніх рядків, і все одно бути HTML-файлами придатними для використання.
Підхід з магічним числом дає кращі гарантії того що формат буде визначено коректно, і часто може визначити більш детальну інформацію про файл. Так як достатньо надійні перевірки «магічного числа» можуть бути досить складними, кожен файл повинен перевірятись практично щодо кожного типу в базі даних магічних чисел, цей підхід є не дуже ефективним, особливо при відображенні довгих списків файлів (на противагу, підходи з іменем та метаданими потребують отримання лише однієї частинки даних, і зіставлення її з відсортованим індексом). Також, дані мають читатись з самого файлу, що збільшує час доступу, порівняно з метаданими які зберігаються в самому каталозі. Проте, це найкращий спосіб для програми, якій сказали обробляти файл, визначити чи файл має коректний формат: хоча назва файлу та його метадані можуть бути змінені незалежно від вмісту файлу, негативні результати перевірки типу за магічним числом будуть певним знаком того що файл або пошкоджений, або не того типу. А з іншого боку — правильне магічне число теж не дає повної гарантії що файл правильного типу і не пошкоджений.
Шебанги в скриптах Unix є спеціальним випадком магічних чисел. Тут, магічне число — це текст що ідентифікує певний інтерпретатор і опції які він повинен отримати. Іншою операційною системою що використовувала магічні числа, була AmigaOS, де магічні числа називались «магічним печивом» (англ. "Magic Cookies").
В Linux для визначення формату файлу використовується програма file
, яка використовує бібліотеку libmagic
для доступу до бази даних файлових сигнатур «magic»
Посилання
- Розширення файлів і база даних форматів файлів(англ.)
Див. також
Примітки
- Magic number definition by The Linux Information Project (LINFO). Процитовано 29 червня 2016.
- The Fine Free File Command. Процитовано 29 червня 2016.
- libmagic(3): Magic number recognition library - Linux man page. Процитовано 29 червня 2016.
- magic(5): file command's magic pattern file - Linux man page. Процитовано 29 червня 2016.
- Linux Magic Numbers. Процитовано 29 червня 2016.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Format fajlu abo tip fajlu v informatici ce ustalenij standart zapisu informaciyi u fajli danogo tipu Sposib koduvannya informaciyi abo danih zalezhit vid zastosovanoyi komp yuternoyi programi Chasto format fajlu viznachayetsya jogo rozshirennyam Zagalnoprijnyata v obchislyuvalnij tehnici koncepciya fajlu nestrukturovana poslidovnist bajtiv Komp yuterni programi sho zberigayut u fajlah strukturovani dani povinni yakos peretvoryuvati yih v poslidovnist bajtiv i navpaki v OOP ci operaciyi nazivayutsya vidpovidno serializaciyeyu i deserializaciyeyu dlya tekstovoyi informaciyi ostannye takozh nazivayetsya rozbir abo parsing Algoritm cogo peretvorennya a takozh ugodi pro te yak rizni fragmenti informaciyi roztashovuyutsya useredini fajlu i skladayut jogo format Rizni formati fajliv mozhut riznitisya stupenem detalizaciyi odin format mozhe buti nadbudovoyu nad inshim abo vikoristovuvati elementi inshih formativ Napriklad tekstovij format nakladaye lishe zagalni obmezhennya na strukturu danih Format HTML vstanovlyuye dodatkovi pravila na vnutrishnij ustrij fajlu ale pri comu bud yakij HTML fajl ye v toj zhe chas tekstovim fajlom SpecifikaciyiDlya bagatoh formativ fajliv isnuyut opublikovani specifikaciyi v yakih detalno opisano strukturu fajliv danogo formatu te yak programi povinni koduvati dani dlya zapisu v cej format i yak dekoduvati yih pri zchituvanni Bilshist takih specifikacij vilnodostupni deyaki poshiryuyutsya za platu Inodi kompaniyi mozhut vvazhati pevni formati fajliv svoyeyu komercijnoyu tayemniceyu i ne publikuvati yih Dobre vidomij priklad formati fajliv paketu Microsoft Office U deyakih vipadkah kompaniya sho vipustila dodatok prosto ne vvazhaye za potribne vitrachati chas na napisannya dokladnoyi specifikaciyi Yaksho specifikaciya formatu nedostupna to dlya zabezpechennya sumisnosti programi z danim formatom dovoditsya zajmatisya zvorotnoyu rozrobkoyu U bilshosti abo v usih krayinah formati fajliv ne zahisheni zakonami pro avtorski prava Prote v deyakih krayinah patentami mozhut buti zahisheni algoritmi yaki vikoristovuyutsya dlya koduvannya danih u bud yakij format Napriklad u shiroko poshirenomu formati GIF vikoristovuvavsya patentovanij algoritm sho prizvelo do rozrobki alternativnogo formatu PNG Viznachennya tipu fajlu ce informaciya dlya shvidkoyi identifikaciyi vmistu fajlu operacijnoyu sistemoyu i koristuvachem bez neobhidnosti zchituvannya vsogo vmistu fajlu Zavdyaki cij informaciyi koristuvach priblizno znaye tip informaciyi u fajli a v operacijnij sistemi mozhe buti znajdena programa dlya obrobki fajliv danogo tipu Z istorichnih prichin v riznih operacijnih sistemah vikoristovuyutsya rizni pidhodi dlya virishennya cogo zavdannya Magichne chislo Dokladnishe Magichne chislo programuvannya Odnim zi sposobiv yakij chasto asociyuyetsya z UNIX ta pohidnimi OS ye zberigati metadani pro tip fajlu vseredini samogo fajlu Ce nazivayut signaturoyu fajlu abo magichnim chislom Pochatkovo termin magichne chislo angl Magic number vikoristovuvavsya dlya specifichnogo naboru dvobajtovih identifikatoriv na pochatku fajlu Ale tak yak bud yaka binarna poslidovnist mozhe rozglyadatis yak chislo dovilna vlastivist formatu fajlu sho jogo odnoznachno identifikuye mozhe vikoristovuvatis v cij yakosti GIF kartinki napriklad zavzhdi pochinayutsya tekstom GIF87a abo GIF89a zakodovanim v ASCII zalezhno vid standartu yakomu voni vidpovidayut Bagato tipiv fajliv osoblivo tekstovih vazhche vidrizniti cim metodom Napriklad HTML fajli mozhut pochinatis ryadkom lt html gt v riznomu registri abo vidpovidnim viznachennyam tipu dokumenta napriklad lt DOCTYPE HTML gt dlya HTML 5 abo dlya XHTML identifikatorom XML yakij pochinayetsya z lt xml Fajli mozhut takozh pochinatis z komentariv HTML vipadkovogo tekstu chi kilkoh porozhnih ryadkiv i vse odno buti HTML fajlami pridatnimi dlya vikoristannya Pidhid z magichnim chislom daye krashi garantiyi togo sho format bude viznacheno korektno i chasto mozhe viznachiti bilsh detalnu informaciyu pro fajl Tak yak dostatno nadijni perevirki magichnogo chisla mozhut buti dosit skladnimi kozhen fajl povinen pereviryatis praktichno shodo kozhnogo tipu v bazi danih magichnih chisel cej pidhid ye ne duzhe efektivnim osoblivo pri vidobrazhenni dovgih spiskiv fajliv na protivagu pidhodi z imenem ta metadanimi potrebuyut otrimannya lishe odniyeyi chastinki danih i zistavlennya yiyi z vidsortovanim indeksom Takozh dani mayut chitatis z samogo fajlu sho zbilshuye chas dostupu porivnyano z metadanimi yaki zberigayutsya v samomu katalozi Prote ce najkrashij sposib dlya programi yakij skazali obroblyati fajl viznachiti chi fajl maye korektnij format hocha nazva fajlu ta jogo metadani mozhut buti zmineni nezalezhno vid vmistu fajlu negativni rezultati perevirki tipu za magichnim chislom budut pevnim znakom togo sho fajl abo poshkodzhenij abo ne togo tipu A z inshogo boku pravilne magichne chislo tezh ne daye povnoyi garantiyi sho fajl pravilnogo tipu i ne poshkodzhenij Shebangi v skriptah Unix ye specialnim vipadkom magichnih chisel Tut magichne chislo ce tekst sho identifikuye pevnij interpretator i opciyi yaki vin povinen otrimati Inshoyu operacijnoyu sistemoyu sho vikoristovuvala magichni chisla bula AmigaOS de magichni chisla nazivalis magichnim pechivom angl Magic Cookies V Linux dlya viznachennya formatu fajlu vikoristovuyetsya programa file yaka vikoristovuye biblioteku libmagic dlya dostupu do bazi danih fajlovih signatur magic PosilannyaRozshirennya fajliv i baza danih formativ fajliv angl Div takozhFormati danih Perelik fajlovih formativPrimitkiMagic number definition by The Linux Information Project LINFO Procitovano 29 chervnya 2016 The Fine Free File Command Procitovano 29 chervnya 2016 libmagic 3 Magic number recognition library Linux man page Procitovano 29 chervnya 2016 magic 5 file command s magic pattern file Linux man page Procitovano 29 chervnya 2016 Linux Magic Numbers Procitovano 29 chervnya 2016