8Sep
Mes visada kartais susiduriame su "situacija" mūsų kompiuteriuose, todėl mums visiškai nesijaučia, pvz., Failas, kurio dydis yra nulis, bet kaip tai netgi įmanoma?Šiandien "SuperUser Q &" įraše yra atsakymai į painiavą skaitytojo klausimą.
Šiandienos klausimas &Atsakymų sesija ateina pas mus iš "SuperUser" - "Stack Exchange", bendruomenės pagrįstos "Q & A" svetainių grupės pasidalijimo.
Klausimas
SuperUser skaitytuvas Eugene S nori sužinoti, kaip failo dydis gali būti lygus nuliui:
Tai yra kažkas, į kurį įveikau, ir negalėjo galvoti apie tinkamą paaiškinimą.Jei aš sukuriu tuščią *. txt failą savo kompiuteryje ir tada žiūriu jo dydį, jis rodo nulio dydį.Kaip tai įmanoma? Aš turiu omenyje, net jei pats failas yra tuščias, jis vis tiek turi tam tikrą dydį( net jei jis tik turi savo vardą).Kaip tai galima paaiškinti?
Kaip failo dydis gali būti nulis?
Atsakymas
SuperUser autoriai David Schwartz ir Cort Ammon atsakė už mus. Pirmiausia, David Schwartz:
Tai įmanoma, nes ten tikrai nėra failo. Yra tik katalogo įrašas su pavadinimu ir savininku. Katalogo įrašas logiškai skiriasi nuo failo. Pavyzdžiui, tas pats failas gali turėti daugiau nei vieną pavadinimą daugiau nei viename kataloge.
Deja, terminų failas ne visada vartojamas tiksliai tiems patiems dalykams suprasti. Tačiau failo dydžio logika kyla iš modelio, kuriame katalogo įrašas prideda failą į katalogą, tada failų pavadinimai ir susiję meta duomenys saugomi kataloge.
Vykdydami "Cort Ammon" atsakymą:
Failo dydžio semantinė prasmė skiriasi nuo tos, kurią naudojate.
Yra daug failų dydžių, kurie yra reikšmingi. Labiausiai paplitęs ir tas, kurį čia matote, yra failo baitų skaičius. Jei failas yra tuščias tekstinis failas, gali būti, kad jis gali būti nulis baitų.Šis skaičius yra svarbus programuotojams, nes dažnai turime atidaryti failą, perskaityti visus duomenis ir uždaryti. Mums reikia žinoti, kiek failų baitų bus, kad galėtume planuoti į priekį.
Kita reikšmė kyla dėl to, kaip dauguma failų sistemų saugo duomenis. Dauguma failų sistemų saugo duomenis blokuose. Pavyzdžiui, failų sistema gali saugoti duomenis 64 kB blokuose, tai reiškia, kad niekada nebus paskirstyti nieko, kuris netinka net 64 kB.Tai atrodo neefektyvus, tačiau jis gali padaryti buhalteriją gana paprasčiau, o dažnai paprastesnis reiškia greitesnį.
Trečiąja prasme, kuria esate įtemptas, būtų tikrasis bitų skaičius, reikalingas kietajame diske, norint apibūdinti failo buvimą.Tai apima informaciją, kuri paprastai saugoma atskirai nuo failo. Pavyzdžiui, Linux atveju failo pavadinimo sąvoka saugoma kataloge, kuriame yra failas, inode.[ Remiantis kitų komentarų įnašu, tai( techniškai) saugoma katalogo duomenimis. Kai aš tai parašiau, aš galvoju apie mažų katalogų atvejį.Duomenys, mažesni nei 156 baitai, gali būti saugomi tiesiogiai inode. ] Tai nėra dažniausiai vartojama prasmė, nes tai yra labai sunku nustatyti, nežinant, kokios itin gilios vidinės failų sistemos funkcijos( pvz., Vietos, reikalingos saugoti visus failo leidimus, apskaita).Tačiau jei turite 100 000 baitų standųjį diską ir norite sužinoti, kiek failo dydis gali tilpti į tą kietąjį diską, tai jums bus labai svarbi reikšmė!
Ar ką nors įtraukti į paaiškinimą?Garsas išjungtas komentaruose. Norite skaityti daugiau atsakymų iš kitų "Tech-savvy Stack Exchange" vartotojų?Patikrinkite visą diskusijų temą čia.