Me kaikki satunnaisesti törmäät tietokoneeseemme "tilaan", joka jättää meidät kokonaan hajamielelle, kuten tiedostolle, jonka koko on nolla, mutta miten se on mahdollista? Tämän päivän SuperUser Q & A -postilla on vastauksia hämmentynyt lukijan kysymykseen.
Tämän päivän kysymys- ja vastausistunto tulee meihin SuperUserin hyväksi - Stack Exchangein alaosasto, joka on yhteisöllinen Q & A-sivustojen ryhmittely.
SuperUser-lukija Eugene S haluaa tietää, kuinka tiedoston koko voi olla nolla:
Tämä on jotain, johon törmäsin ja ei voinut ajatella oikeaa selitystä. Jos luot tyhjäksi * .txt-tiedosto ja sitten sen koko, se näyttää nollan kokoa. Kuinka se on mahdollista? Tarkoitan vaikka tiedosto itse on tyhjä, sen on vielä oltava kooltaan (vaikka se vain säilyttää oman nimensä). Miten tämä voidaan selittää?
Kuinka tiedosto on nolla-kokoinen?
SuperUser-avustajat David Schwartz ja Cort Ammon ovat meille vastauksen. Ensin ylös, David Schwartz:
Se on mahdollista, koska tiedostoa ei todellisuudessa ole. Vain hakemistomerkintä, jossa on nimi ja omistaja. Hakemistokirjaus on loogisesti erillinen tiedostosta. Esimerkiksi samassa tiedostossa voi olla useampi kuin yksi nimi useammassa kuin yhdessä hakemistossa.
Valitettavasti termitiedostoa ei aina käytetä tarkoittamaan täsmälleen samaa asiaa. Tiedostokoon liittyvä logiikka tulee kuitenkin mallista, jossa hakemistomerkintä liittää tiedoston hakemistoon, jolloin tiedostonimet ja niihin liittyvät metatiedot tallennetaan hakemistoon.
Seuraaja Cort Ammonin vastaus:
Tiedostokokoelman semanttinen merkitys on erilainen kuin käytät.
On monia tiedostokokoja, jotka ovat mielekkäitä. Yleisimpiä ja sitä, mitä näet täällä, on tiedoston tavujen määrä. Jos tiedosto on tyhjä tekstitiedosto, se voi todellakin sisältää nolla tavua. 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 tietoja on tiedostossa, jotta voimme suunnitella eteenpäin.
Toinen merkitys syntyy tavasta, jolla useimmat tiedostojärjestelmät tallentavat tietoja. Useimmat tiedostojärjestelmät tallentavat tietoja lohkoihin. Esimerkiksi tiedostojärjestelmä voi tallentaa tietoja 64 kB: n lohkoihin, eli se ei koskaan anna mitään, mikä ei ole edes 64 kB: n monikerta. Tämä kuulostaa tehoton, mutta se voi tehdä kirjanpidon melko yksinkertaisemmaksi ja usein yksinkertaisemmaksi tarkoittaa nopeampaa.
Kolmas merkitys, jota venytät, olisi kiintolevyllä tarvittavien bittien todellinen määrä kuvaamaan tiedostojen läsnäoloa. Tämä sisältää tietoja, jotka yleensä tallennetaan erikseen tiedostosta. Esimerkiksi Linuxissa tiedostonimen käsite tallennetaan tiedoston sisältävän hakemiston inode-tiedostoon. [Muiden kommenttien perusteella tämä (teknisesti) tallennetaan hakemiston tietoihin. Kun kirjoitin tämän, ajattelin pientä hakemistokoteloa. Pienempiä kuin 156 tavua saavat tiedot voidaan tallentaa suoraan inodeon.] Tämä ei ole yleisesti käytetty merkitys, koska se on äärimmäisen vaikea määrittää tietämättä tiedostojärjes- telmän valtavaa syvää sisäistä toimintaa (kuten kirjanpidossa olevien tiedostojen tallentamiseen tarvittava tila). Kuitenkin, jos sinulla on 1 000 000 tavun kiintolevy ja haluat tietää, kuinka suuret tiedostot sopivat kyseiselle kovalevylle, tämä on sinulle erittäin tärkeä merkitys!
Onko jokin asia lisättävä selitykseen? Kuulkaa kommentit. Haluatko lukea lisää vastauksia muilta tech-tajuilta Stack Exchange-käyttäjiltä? Katso koko keskusteluketju täältä.