8Sep

Kuinka tiedoston koko voi olla nolla?

Me kaikki satunnaisesti törmäämme "tilanteeseen" tietokoneissamme, joka jättää meidät kokonaan hämillään, kuten nolla-kokoisen tiedoston, mutta miten se on mahdollista? Tämän päivän SuperUser Q & A -postilla on vastauksia hämmentynyt lukijan kysymykseen.

Päivän kysymys &Vastausistunto tulee meille kohteliaasti SuperUser-osastoon Stack Exchange, yhteisöllinen ryhmittely Q & A verkkosivuilla.

Kysymys

SuperUser-lukija Eugene S haluaa tietää, miten tiedoston koko voi olla nolla:

Tämä on jotain, johon törmäsin ja ei voinut ajatella oikeaa selitystä.Jos luot tyhjän *. txt-tiedoston tietokoneelleni ja tarkastelen sitten sen kokoa, se näyttää nollaa. 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 tiedoston koko on nolla?

Vastaus

SuperUser-avustajat David Schwartz ja Cort Ammon ovat meille vastauksen. Ensin, David Schwartz:

Tämä on mahdollista, koska tiedostoa ei 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.

Jälkeen Cort Ammonin vastaus:

Tiedostokoon semanttinen merkitys on erilainen kuin käyttämäsi.

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, jolloin 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 äärimmäisen syviä sisäisiä toimintoja( kuten kirjanpitoon tarvittavien tilojen kirjanpitoa).Kuitenkin, jos sinulla on 1 000 000 tavun kiintolevy ja haluat tietää, kuinka suuri tiedosto löytyy kovalevyltä, tämä on sinulle tärkeä merkitys!

Onko sinulla jotain lisättävä selitykseen? Kuulkaa kommentit. Haluatko lukea lisää vastauksia muilta tech-tajuilta Stack Exchange-käyttäjiltä?Katso koko keskusteluketju täältä.