Miten tiedoston koko voi olla nolla?
Me kaikki ajoittain ajetaan tietokoneiden "tilanteen" yli, joka jättää meidät täysin hämmentyneeksi, kuten tiedosto, jonka koko on nolla, mutta miten se on mahdollista? Tämän päivän SuperUser Q&A -postissa on vastaukset sekavaan lukijakysymykseen.
Nykypäivän Kysymys- ja vastaus -istunto tulee meille suotuisasti SuperUserin - Stack Exchange -alueen, yhteisöpohjaisen Q & A-sivustojen ryhmittymän - kautta..
Kysymys
SuperUser-lukija Eugene S haluaa tietää, miten tiedoston koko voi olla nolla:
Tämä on jotain, jonka juoksin ja en voinut ajatella oikeaa selitystä. Jos luon tyhjän * .txt-tiedosto tietokoneessa ja katso sen koko, se näyttää nollan koon. Kuinka se on mahdollista? Tarkoitan, että vaikka tiedosto itsessään olisi tyhjä, sillä on oltava vielä jonkin verran kokoa (vaikka se vain tallentaa oman nimensä). Miten tämä voidaan selittää?
Miten tiedoston koko voi olla nolla?
Vastaus
SuperUser-avustajat David Schwartz ja Cort Ammon ovat vastaus meille. Ensinnäkin, David Schwartz:
Se on mahdollista, koska tiedostoa ei todellakaan ole. On vain hakemistomerkintä, jossa on nimi ja omistaja. Hakemistomerkintä on loogisesti erillinen tiedostosta. Esimerkiksi samassa tiedostossa voi olla useampi kuin yksi nimi useammassa kuin yhdessä hakemistossa.
Valitettavasti termiä tiedosto ei aina käytetä tarkalleen samaan asiaan. Tiedoston koon logiikka tulee kuitenkin mallista, jossa hakemistomerkintä liittää tiedoston hakemistoon, sitten tiedostonimet ja niihin liittyvät metatiedot tallennetaan hakemistoon.
Seurauksena on Cort Ammonin vastaus:
Tiedoston koon semanttinen merkitys on erilainen kuin käytät.
On monia tiedostokokoja, jotka ovat mielekkäitä. Yleisin ja tässä näkyvä tiedosto on tiedoston tavujen lukumäärä. Jos tiedosto on tyhjä tekstitiedosto, se voi todellakin sisältää nolla tavuja. Tämä numero on tärkeä ohjelmoijille, koska meidän täytyy usein avata tiedosto, lukea kaikki tiedot ja sulkea se. Meidän on tiedettävä, kuinka monta tavua datassa on tiedosto, jotta voimme suunnitella eteenpäin.
Toinen merkitys syntyy siitä, miten useimmat tiedostojärjestelmät tallentavat tietoja. Useimmat tiedostojärjestelmät tallentavat tietoja lohkoina. Tiedostojärjestelmä voi esimerkiksi tallentaa tietoja 64 kB: n lohkoissa, eli se ei koskaan kohdista mitään, joka ei ole tasainen 64 kB: n kerta. Tämä kuulostaa tehottomalta, mutta se voi tehdä kirjanpidon melko yksinkertaisemmaksi ja usein yksinkertaisemmaksi tarkoittaa nopeampaa.
Kolmas merkitys, jonka olet vetämässä, olisi kiintolevyllä vaadittavien bittien todellinen lukumäärä tiedoston kuvaamiseksi. Tämä sisältää tietoja, jotka yleensä tallennetaan erillään tiedostosta. Esimerkiksi Linuxissa tiedostonimen käsite tallennetaan tiedostoa sisältävän hakemiston inodeille. [Muiden kommenttien perusteella tämä tallennetaan (teknisesti) hakemiston tietoihin. Kun kirjoitin tämän, ajattelin pientä hakemistoa. Tiedot, jotka ovat pienempiä kuin 156 tavua, voidaan tallentaa suoraan inodeihin.] Tämä ei ole yleisesti käytetty merkitys, koska se on hirvittävän vaikeaa selvittää tuntematta tiedostojärjestelmäsi valtavasti syvää sisäistä toimintaa (kuten esimerkiksi tilaa, joka tarvitaan tallentamaan kaikki tiedoston oikeudet). Jos sinulla on kuitenkin 1 000 000 tavun kiintolevyasema ja haluat tietää, kuinka suuri tiedosto mahtuu kyseiseen kiintolevyyn, tämä on sinulle erittäin tärkeä merkitys!
Onko jotain lisättävää selitykseen? Ääni pois kommenteista. Haluatko lukea lisää vastauksia muilta tech-savvy Stack Exchange -käyttäjiltä? Tutustu koko keskusteluketjuun täällä.