/ / Kako veličina datoteke može biti nula?

Kako veličina datoteke može biti nula?

kako-se-a-slika-size-biti-nula-00

Svi povremeno nailazimo na "situaciju"naša računala koja nas ostavljaju potpuno zbunjena, poput datoteke s veličinom nula, ali kako je to uopće moguće? Današnji SuperUser-ov odgovor na pitanja sadrži odgovore na pitanje zbunjenog čitatelja.

Današnja sjednica Pitanja i Odgovori dolazi nam iz ljubaznosti SuperUsera - podjele Stack Exchangea, grupacije Q&A web stranica koje vodi zajednica.

Pitanje

SuperUser čitač Eugene S želi znati kako veličina datoteke može biti nula:

To je nešto na što sam naišao i nisam mogao smisliti ispravno objašnjenje. Ako stvorim prazan * .txt datoteka na mom računalu i zatim pogledajte njegovu veličinuprikazuje veličinu nula. Kako je to moguće? Mislim, čak i ako je datoteka sama prazna, svejedno mora imati neku veličinu (čak i ako je samo za pohranjivanje vlastitog imena). Kako se to može objasniti?

Kako je moguće da datoteka ima nulu?

Odgovor

Suradnici SuperUsera David Schwartz i Cort Ammon imaju odgovor za nas. Prvo, David Schwartz:

To je moguće jer doista nema datoteke. Postoji samo unos u imenik s imenom i vlasnikom. Unos u imeniku logično se razlikuje od datoteke. Na primjer, ista datoteka može imati više imena u više direktorija.

Nažalost, izraz datoteka se ne koristi uvijekznačiti točno istu stvar. No, logika veličine datoteke dolazi iz modela gdje unos u mapu veže datoteku u mapu, a zatim se nazivi datoteka i povezani meta podaci pohranjuju u mapu.

Uslijedio je odgovor iz Cort Ammona:

Semantičko značenje veličine datoteke razlikuje se od onog koji koristite.

Mnogo je datoteka koje imaju smisla. Najčešća i ona koju ovdje vidite je broj bajtova u datoteci. Ako je datoteka prazna tekstualna datoteka, može zaista sadržavati nula bajtova. Ovaj je broj važan programerima jer često moramo otvoriti datoteku, pročitati sve podatke i zatvoriti je. Moramo znati koliko će bajta podataka biti u datoteci kako bismo mogli planirati unaprijed.

Drugo značenje proizlazi iz načina na koji se većina datotekasustavi pohranjuju podatke. Većina datotečnih sustava pohranjuje podatke u blokove. Na primjer, datotečni sustav može pohraniti podatke u blokove od 64 kB, što znači da nikada neće dodijeliti ništa što nije čak i više od 64 kB. To zvuči neučinkovito, ali knjigovodstvo može učiniti prilično jednostavnijim, a često i jednostavnijim sredstvima bržim.

Treće značenje, koje vi trzate, bilo bibiti stvarni broj bita potrebnih na tvrdom disku da biste opisali prisutnost datoteke. To uključuje podatke koji se obično pohranjuju odvojeno od datoteke. Na primjer, u Linuxu, koncept naziva datoteke pohranjuje se u inode za mapu koja sadrži datoteku. [Na temelju podataka iz drugih komentara, ovo je(tehnički) pohranjeni u podacima direktorija. Kad sam ovo napisao, razmišljao sam o slučaju s malim direktorijima. Podaci manji od 156 bajta mogu se pohraniti izravno u inode.] Ovo nije često korišteno značenje jer toužasno je teško odrediti bez poznavanja strašno dubokog unutarnjeg funkcioniranja vašeg datotečnog sustava (poput računovodstva prostora potrebnog za spremanje svih dozvola u datoteci). Međutim, ako imate tvrdi disk od 1.000.000 bajta i želite znati koliko velika datoteka može stati na taj tvrdi disk, ovo će vam biti vrlo važno!


Imate li što dodati u objašnjenje? Zvuči u komentarima. Želite pročitati više odgovora od ostalih korisnika Stack Exchangea koji se bave tehnologijom? Pogledajte cijelu temu rasprave ovdje.