8Sep

Ako môže byť veľkosť súboru nula?

Všetci príležitostne narazíme na "situáciu" na našich počítačoch, ktorá nás úplne zmiernila, napríklad súbor, ktorý má veľkosť nuly, ale ako to je možné?Dnešný príspevok "SuperUser Q & A" má odpovede na otázku zmeteného čitateľa.

dnešná otázka &Odpoveď na zasadnutie nám príde s láskavým dovolením SuperUser - subdivíziu Stack Exchange, komunitne riadeného zoskupenia webových stránok Q & A.

Otázka

Čítačka SuperUser Eugene S chce vedieť, ako veľkosť súboru môže byť nula:

To je niečo, čo som narazil do a nemohol myslieť na správne vysvetlenie. Ak na svojom počítači vytvorím prázdny súbor *. txt a potom sa pozrieť na jeho veľkosť, zobrazí sa veľkosť nuly. Ako je to možné?Mám na mysli aj to, že samotný súbor je prázdny, musí mať ešte určitú veľkosť( dokonca aj vtedy, ak ide len o uloženie vlastného mena).Ako to možno vysvetliť?

Ako je možné mať súbor veľkosť nuly?

Odpovedia na odpovede

SuperUser David Schwartz a Cort Ammon. Prvýkrát, David Schwartz:

Je to možné, pretože naozaj neexistuje žiadny súbor. Existuje len položka adresára s menom a vlastníkom. Položka adresára je logicky odlišná od súboru. Napríklad ten istý súbor môže mať viac ako jeden názov vo viac ako jednom adresári.

Bohužiaľ, termín súbor nie je vždy používaný na to, aby presne znamenal to isté.Ale logika veľkosti súboru pochádza z modelu, kde položka adresára pripojí súbor k adresáru, potom sú v adresári uložené názvy súborov a súvisiace meta dáta.

Nasledujúca odpoveď od Cort Ammon:

Sémantický význam veľkosti súboru sa líši od významu, ktorý používate.

Existuje veľa súborov, ktoré sú zmysluplné.Najčastejšie a ten, ktorý tu vidíte, je počet bajtov v súbore. Ak je súbor prázdny textový súbor, môže obsahovať skutočne nulové bajty. Toto číslo je dôležité pre programátorov, pretože často potrebujeme otvoriť súbor, prečítať si všetky údaje a zavrieť ho. Musíme vedieť, koľko bajtov údajov bude v súbore, aby sme mohli naplánovať dopredu.

Ďalším významom je spôsob, akým väčšina súborových systémov ukladá dáta. Väčšina súborových systémov ukladá údaje v blokoch. Napríklad súborový systém môže ukladať dáta na blokoch 64 kB, čo znamená, že nikdy nebude prideľovať nič, čo nie je rovnomerným násobkom 64 kB.Znie to neefektívne, ale môže spraviť účtovníctvo oveľa jednoduchšie a často jednoduchšie znamená rýchlejšie.

Tretím významom, na ktorý sa naťahujete, by bol skutočný počet bitov potrebných na harddisku na popis prítomnosti súboru. Zahŕňa to informácie, ktoré sa zvyčajne ukladajú oddelene od súboru. Napríklad v systéme Linux je koncept názvu súboru uložený v inode pre adresár obsahujúci súbor.[ Na základe údajov z ostatných komentárov je to( technicky) uložené v údajoch adresára. Keď som to napísal, rozmýšľal som o prípade malého adresára.Údaje menšie než 156 bajtov môžu byť uložené priamo v inode. ] Toto nie je bežne používaný význam, pretože je veľmi ťažké ho určiť bez poznania mimoriadne hlbokého vnútorného fungovania vášho súborového systému( napr. Účtovanie priestoru potrebného na uloženie všetkých povolení na súbor).Avšak, ak máte pevný disk o veľkosti 1 000 000 bajtov a chcete vedieť, ako veľký súbor sa môže na tento pevný disk priradiť, bude to pre vás veľmi dôležitý!

Musíte niečo doplniť k vysvetleniu? Znížte komentáre. Chcete si prečítať viac odpovedí od iných používateľov technológie Stack Exchange? Pozrite sa na celý diskusný príspevok tu.