8Sep

Hogyan lehet a fájl mérete nulla?

Mindannyian a számítógépeink "helyzetén" keresztül járunk, ami teljesen elkápráztatott minket, például egy olyan fájlt, amelynek nagysága nulla, de hogyan lehetséges? A mai SuperUser Q & A bejegyzés válaszol a zavaros olvasói kérdésre.

A mai kérdés &A válaszüzenet a SuperUser - a Stack Exchange megosztottságának köszönhetően - a Q & A webhelyek közösségi szintű csoportosítása.

Kérdés

SuperUser olvasó Eugene S szeretné tudni, hogy a fájl mérete nulla lehet:

Ez olyan dolog, amellyel befutottam, és nem tudtam elképzelni a megfelelő magyarázatot. Ha az üres *. txt fájlt hoztam létre a számítógépemen, majd megnézem annak méretét, akkor nullát mutat. Hogyan lehetséges ez?Úgy értem, még akkor is, ha maga a fájl üres, még mindig van valamilyen méretű( még ha csak a saját nevét tárolja).Hogyan magyarázható ez?

Hogyan lehet a fájl mérete nulla?

A válasz

SuperUser közreműködők David Schwartz és Cort Ammon válaszolnak nekünk. Először is, David Schwartz:

Lehetséges, mert tényleg nincs fájl. Csak egy könyvtár bejegyzés van, amelynek neve és tulajdonosa. A könyvtárbejegyzés logikailag elkülönül a fájltól. Például ugyanaz a fájl több mint egy nevet tartalmazhat egynél több könyvtárban.

Sajnos a fájlnév nem mindig ugyanazt jelenti. De a fájlméret logikája olyan modellből származik, ahol egy könyvtárbejegyzés egy fájlt egy könyvtárhoz csatol, majd a fájlnevek és a kapcsolódó metaadatok a könyvtárban vannak tárolva.

A Cort Ammon válasza:

A fájlméret szemantikai jelentése eltér az Ön által használt mappától.

Sok olyan fájlméret létezik, amelyek értelmesek. A leggyakoribb, és az itt látható, a fájlban lévő byte-ok száma. Ha a fájl üres szöveges fájl, valójában tartalmazhat nullát. Ez a szám fontos a programozók számára, mert gyakran meg kell nyitnunk egy fájlt, el kell olvasnunk az összes adatot, és be kell zárnunk. Tudnunk kell, hogy hány bájtnyi adat lesz a fájlban, így előre tervezhetünk.

Egy másik jelentés abból áll, hogy a legtöbb fájlrendszer tárolja az adatokat. A legtöbb fájlrendszer blokkokban tárolja az adatokat. Például a fájlrendszer 64 kB-os blokkokban tárolja az adatokat, vagyis soha nem oszt ki semmit, ami nem 64 kB-os. Ez nem hatékony, de a könyvelést meglehetősen egyszerűbbé teheti, és gyakran egyszerűbb a gyorsabb.

A harmadik jelentés, amelyet megragadsz, a merevlemezen lévő bitek tényleges száma lenne a fájl jelenlétének leírására. Ez magában foglalja az általában a fájltól elkülönítve tárolt információkat. Például Linuxban a fájlnév fogalma az inode-ban tárolódik a fájlt tartalmazó könyvtárhoz.[ A többi megjegyzéstől származó bemenet alapján( technikailag) ez a könyvtár adatait tárolja. Amikor ezt írtam, a kiskönyvtárra gondoltam. A 156 bájtnál kisebb adat közvetlenül az inode-ban tárolható.] Ez nem általánosan használt jelentés, mert rettenetesen nehéz meghatározni a fájlrendszer rendkívül mély belső működésének ismeretét( például a fájl összes engedélyének tárolásához szükséges helyet).Ha azonban van egy 1000 000 bájtos merevlemez-meghajtó, és szeretné tudni, hogy egy fájl milyen nagyméretű lehet a merevlemezen, akkor ez nagyon fontos értelme számodra!

Van valami, amit hozzá lehet adni a magyarázathoz? Hangzik ki a megjegyzésekben. Szeretne többet válaszolni a többi technikus-tudós Stack Exchange felhasználóiról? Nézze meg a teljes vitafonalat itt.