Mis vahe on programmifailidel ja andme- / dokumendifailidel?


Vastus 1:

Mis on fail esiteks? Põhimõtteliselt on see lihtsalt baitide voog, mis tähistab midagi või muud mingis eelnevalt määratletud vormingus või muus. Kuni teate, mis see vorming on, saab faili lugeda ja andmeid vastavalt töödelda.

Failil võib olla isegi oma vorming, kui teate, mis see on:

Turbo dump versioon 5.0.16.12 Autoriõigused (c) 1988, 2000 Inprise Corporation Faili kuva PRIMES.BIN 000000: 02 00 00 00 03 00 00 00 05 00 00 00 07 00 00 00 ........... ..... 000010: 0B 00 00 00 0D 00 00 00 11 00 00 00 13 00 00 00 ................ 000020: 17 00 00 00 1D 00 00 00 1F 00 00 00 25 00 00 00 ............% ... 000030: 29 00 00 00 2B 00 00 00 2F 00 00 00 35 00 00 00) ... + ... / ... 5 ... 000040: 3B 00 00 00 3D 00 00 00 43 43 00 00 00 47 00 00 00; ... = ... C ... G ... 000050: 49 00 00 00 4F 00 00 00 53 00 00 00 59 00 00 00 I ... O ... S ... Y ... 000060: 61 00 00 00 65 00 00 00 67 00 00 00 6B 00 00 00 a ... e. .g ... k ...

Sel juhul on esimese 28 algarvu binaarne / heksakujuline esitus. (Märkus: Inteli Little-Endiani vormingus on iga number neli baiti. Neid saab lugeda täisarvumassiiviks ja vajadusel kasutada.

Teistel failidel on konkreetsed identifikaatorid. Bitmap-failid algavad tavaliselt tähega “BM”, mis on osa BITMAPFILEHEADER-i struktuurist, mida kasutatakse faili suuruse ja faili nihke määramiseks, kus bitmap-andmed algavad. Sellele järgneb BITMAPINFOHEADER-i struktuur, mis määratleb selle laiuse ja kõrguse jms. Bitukaardiandmete juurde jõudmiseni peaksite teadma, kuidas need on paigutatud.

Samasugused struktuurid kehtivad ka varasemate Microsoft Office'i dokumentide, Word Exceli jms puhul, kuid tänapäeval kasutavad nad XML-dokumendivormingut.

Programmifailid ise on lihtsalt failid. Windows.EXE failid algavad tähega "MZ", millele järgneb struktuur, mis prindib DOS-i keskkonnas teate järgmiselt: "Seda programmi tuleb käivitada WIN32 režiimis" või "Seda programmi ei saa DOS-režiimis käivitada." Või midagi sarnast. DOS-režiimis peavad .EXE-failid kinni vormingust, mis ütleb laadurile, kuidas programmi laadida ja käivitada.

Windowsi laadur möödub sellest DOS-i lõigust ja otsib teisaldatavat käivitatavat päist “PE”, mis algab faili nihkest 0200H. See päis määratleb faili ülejäänud programmi osad. Mõned neist võivad tuvastada programmi .NET-i käivitatavana, sel juhul käivitatakse see .NET-raamistiku all.

Linuxi programmid on sarnases vormingus COFF (PE on COFF laiendus).

Kokkuvõtlikult on failid lihtsalt failid, nende failitüüp ja sisestruktuur muudavad need kasutatavaks, kui nad järgivad eeldatavat vormingut.


Vastus 2:

Programmifailid on käivitatav kood, kirjutatud mingil kujul ja kas tõlgendatud või kompileeritud nii, et need oleksid arvutile natiivselt mõistetavad.

Andme- / dokumendifailid on peaaegu kõik muud * failid; näiteks konfiguratsioonifailid, mida programmifailid loevad vastavalt kasutaja kavatsustele ja dokumentidele (nt veebiserveriprogrammi veebilehed või dokumendid, mis sisaldavad kasutaja kirjutisi).

* leidub ka raamatukogufaile, mis on tehniliselt programmifailide komponent, kuna paljud programmifailid sõltuvad raamatukogu failidest, et neid õigesti täita, ja teegi failid, nagu ka programmifailid, on kirjutatud mingil kujul koodina ja kas tõlgendatud või koostatud nii, et see oleks arvutile natiivselt mõistetav.