Кіріспе
Контейнерлік файл пішімі (IFF) — Electronic Arts (Commodore компаниясымен бірлесіп) 1985 жылы әртүрлі компаниялар жасаған бағдарламалық құралдар арасында деректерді алмасуды жеңілдету үшін ұсынған, жалпыға қолданылатын цифрлық контейнерлік файл пішімі. IFF файлдарының стандартты файл атауының кеңейтімі жоқ. IFF файлдарын жасайтын көптеген жүйелерде файл кеңейтімдері маңызды емес, себебі операциялық жүйе файл пішімінің метадеректерін файл атауынан бөлек сақтайды. «iff» файл атауы кеңейтімі IFF контейнерлік пішімін пайдаланатын ILBM кескін файл пішімі үшін жиі қолданылады. Ресурс алмасу файл пішімі (Resource Interchange File Format) — Microsoft және IBM компаниялары 1991 жылы IFF негізінде әзірлеген формат, бірақ байттар тәртібі x86 микропроцессор архитектурасына сәйкес келетін little endian форматына өзгертілген. Apple-дың Audio Interchange File Format (AIFF) — IFF негізінде жасалған үлкен байттық аудио файл пішімі. TIFF кескін файл пішімі IFF-ке қатысы жоқ.
Interchange File Format (IFF) is a generic digital container file format originally introduced by Electronic Arts (in cooperation with Commodore) in 1985 to facilitate transfer of data between software produced by different companies. IFF files do not have any standard filename extension. On many systems that generate IFF files, file extensions are not important because the operating system stores file format metadata separately from the file name. The iff filename extension is commonly used for the ILBM image file format, which uses the IFF container format. Resource Interchange File Format is a format developed by Microsoft and IBM in 1991 that is based on IFF, except the byte order has been changed to little endian to match the x86 microprocessor architecture. Apple's Audio Interchange File Format (AIFF) is a big endian audio file format developed from IFF. The TIFF image file format is not related to IFF.
Құрылымы
IFF файлдары бөлшектерден құрылады. Әрбір бөлшек спецификацияда «Type ID» деп аталатыннан басталады (Macintosh OSType деп аталады, ал Windows әзірлеушілері FourCC дейді). Одан кейін 32 биттік бүтін сан (IFF файл құрылымындағы барлық бүтін сандар үлкен ендиан) келесі деректердің мөлшерін (бөлшек мазмұны) байттармен көрсетеді. Спецификация әрбір бөлшек үшін нақты ұзындықты қамтитындықтан, талдаушы оны өңдеуге болмайтын немесе қажеті жоқ бөлшектерді өткіріп жіберуі мүмкін. Бұл құрылым түр-ұзындық-мәні (TLV) ұғымымен тығыз байланысты. Алдын ала анықталған топтық бөлшектер бар, олардың түр ID-лері FORM, LIST және CAT болып табылады. FORM бөлшегі жазба құрылымына ұқсас, ол түр ID-ні (жазба түрін көрсетеді) және содан кейін жазбаның өрістерін анықтайтын ішкі бөлшектерді қамтиды. LIST – бұл PROP (қасиет) бөлшектерінің тізбегі және осы қасиеттерге қолданылатын ішкі топтық бөлшектерді қамтитын факторлық құрылым. CAT – бұл ерекше семантикасы жоқ ішкі бөлшектердің жиынтығы. Топтық бөлшектер қосымшаның қажеттілігіне байланысты басқа топтық бөлшектерді қамтуы мүмкін. Топтық бөлшектер, олардың қарапайым әріптестері сияқты, ұзындық элементіне ие. Сондықтан топты өткіріп жіберуді қарапайым салыстырмалы іздеу операциясы арқылы жасауға болады. Бөлшектер тіпті файлдың жұп байттық смещениесінен басталуы керек, бұл IFF-тің Motorola 68000 процессорындағы шығу тегіне сәйкес келеді, ол тақ мекенжайларда байттан үлкен шамаларды адрестеуге қабілетсіз болды. Осылайша, тақ ұзындығы бар бөлшектер олардың соңына «толтыру байты» деп аталатын байтты қосу арқылы жұп байттық шекараға дейін «толтырылады». IFF файлының жоғарғы деңгейлі құрылымы дәл бір топтық бөлшектен тұрады: FORM, LIST немесе CAT, мұнда FORM ең көп таралған нұсқа. Бөлшектердің әр түрі әдетте сандық деректер, мәтін немесе шикі деректер болатын әртүрлі ішкі құрылымға ие. Басқа IFF файлдарын бөлшектер ретінде қосуға болады (олардың құрылымы бірдей екенін ескеріңіз: төрт әріп ұзындығымен жалғастырылады), және кейбір форматтар осы мүмкіндікті пайдаланады. Кез келген IFF файлында болуы мүмкін стандартты бөлшектер бар, мысалы AUTH (файл авторы туралы ақпаратты қамтитын мәтін), ANNO (файлды жасаған бағдарлама туралы түсініктемелерді қамтитын мәтін), NAME (файлдегі жұмыстың атын қамтитын мәтін), VERS (файл нұсқасы), (c) (авторлық құқық туралы ақпаратты қамтитын мәтін). Сондай-ақ, көптеген форматтарда ортақ бөлшектер бар, мысалы CMAP, ол ILBM, ANIM және DR2D файлдарындағы түс палитрасын сақтайды (суреттер, анимациялар және векторлық суреттер). Бір атаумен белгіленген, бірақ әртүрлі деректерді сақтайтын бөлшектер де бар, мысалы BODY, ол ILBM файлында суретті, ал 8SVX файлында дыбысты сақтай алады. Соңында, файл түріне тән бөлшектер бар. IFF файлдарын құратын кейбір бағдарламалар оларға ішкі деректерімен бірге бөлшектерді қосады; осы файлдарды кейінірек басқа бағдарламалар ешқандай бұзушылықсыз оқи алады (өйткені олардың талдаушылары қызықты емес бөлшектерді өткіріп жібере алады), бұл IFF және ұқсас форматтардың маңызды артықшылығы.