8Sep
Me kõik aeg-ajalt liigutame meie arvutisse "olukorras", mis jätab meile täiesti segane, näiteks faili suurus nulliga, kuid kuidas see on isegi võimalik? Tänane SuperUser Q & postitusel on vastused segane lugeja küsimusele.
tänapäeva küsimus &Vastuste seanss tuleb meile viisakalt SuperUseriga - Q & A veebisaitide kogukonnapõhise grupi Stack Exchange jagunemisest.
Küsimus
SuperUser-lugeja Eugene S tahab teada, kuidas faili suurus võib olla null:
See on midagi, mida ma kasutasin ja ei suutnud korralikku seletust mõelda. Kui loote oma arvutis tühja *. txt-faili ja seejärel vaatan selle suurust, näitab see nulli. Kuidas on see võimalik? Ma mõtlen, et isegi kui fail on ise tühi, peab see siiski olema mõnevõrra suur( isegi siis, kui seda ainult oma nime salvestamiseks).Kuidas seda saab seletada?
Kuidas faili suurus on null?
Vastused
SuperUseri kaasautoritele David Schwartzile ja Cort Ammonile on meie jaoks vastus. Esiteks, David Schwartz:
See on võimalik, sest tegelikult ei ole faili. Siin on lihtsalt katalooginumber, millel on nimi ja omanik. Kataloogide loend on failist loogiliselt eraldiseisev. Näiteks võib ühes failis olla rohkem kui üks nimi mitmes kataloogis.
Kahjuks ei kasutata terminifaili alati sama tähendusega. Kuid failisuuruse loogika pärineb mudelist, kus kataloogi kirje seob faili kataloogi, seejärel salvestatakse failinimed ja nendega seotud metaandmed kataloogi.
Järgneb Cort Ammoni vastus:
Faili suuruse semantiline tähendus erineb sellest, mida te kasutate.
On palju failisuurusi, mis on mõttekas. Kõige tavalisem ja see, mida näete siin, on failis olevate baitide arv. Kui fail on tühi tekstifail, võib see tõepoolest sisaldada null baiti. See number on programmeerijatele oluline, sest sageli peame faili avama, loe kõiki andmeid ja sulgege see. Peame teadma, kui palju baidiandmeid on failis, et saaksime edasi arendada.
Teine tähendus tekib sellest, kuidas enamus failisüsteeme andmeid salvestab. Enamik failisüsteeme salvestab andmed plokkide kaupa. Näiteks võib failisüsteem salvestada andmeid 64 kB-i plokkides, mis tähendab, et see ei eralda kunagi midagi, mis ei ole isegi 64 kB mitu korda. See tundub ebaefektiivne, kuid see võib muuta raamatupidamise üsna lihtsamaks ja lihtsamaks tähendab seda kiiremini.
Kolmas tähendus, mille te tõmbate, on tegelikult failide olemasolu kirjeldamiseks kõvakettal olevate bittide tegelik arv. See hõlmab teavet, mis tavaliselt salvestatakse failist eraldi. Näiteks Linuxis salvestatakse failinime mõiste faili sisaldava kataloogi inode.[ Teiste kommentaaride sisendite põhjal on see( tehniliselt) salvestatud kataloogi andmetele. Kui ma seda kirjutasin, mõtlesin ma väike kataloogi juhtumile. Andmeid, mis on väiksemad kui 156 baiti, saab salvestada otse inode. ] See ei ole üldkasutatav tähendus, sest seda on äärmiselt raske kindlaks teha, ilma et teaksite oma failisüsteemi tohutult sügavat sisemist tööd( näiteks faili jaoks kõigi õiguste salvestamiseks vajaliku ruumi arvestamine).Kuid kui teil on 100 000 baidine kõvaketas ja soovite teada, kui suur fail võib selle kõvakettale mahutada, on see teile väga tähtis tähendus!
Kas teil on seletamiseks midagi lisada? Helistage kommentaarides. Kas soovite lugeda rohkem vastuseid teistelt tech-savvy Stack Exchange'i kasutajatelt? Tutvu täieliku arutelu teemaga siit.