Kako veličina datoteke može biti nula?
Svi mi povremeno naiđemo na "situaciju" na našim računalima koja nas ostavlja potpuno zbunjenim, kao što je datoteka koja ima veličinu nule, ali kako je to uopće moguće? Današnja postova s pitanjima o odgovorima korisnika imaju odgovore na zbunjeno pitanje čitatelja.
Današnja sesija pitanja i odgovora dolazi nam ljubaznošću SuperUser-a, podjele Stack Exchangea, grupiranja web-lokacija za pitanja i odgovore u zajednici.
Pitanje
Čitač SuperUser Eugene S želi znati kako veličina datoteke može biti nula:
To je nešto na što sam naletio i nisam mogao smisliti odgovarajuće objašnjenje. Ako stvorim prazno * .txt datoteka na mom računalu, a zatim pogledajte njegovu veličinu, pokazuje veličinu nule. Kako je to moguće? Mislim čak i ako je sama datoteka prazna, ona ipak mora imati neku veličinu (čak i ako je samo pohraniti svoje ime). Kako se to može objasniti?
Kako je moguće da datoteka ima veličinu nula?
Odgovor
Suradnici superkorisnika David Schwartz i Cort Ammon imaju odgovor za nas. Prvo gore, David Schwartz:
To je moguće jer uistinu nema datoteke. Postoji samo unos u imeniku s imenom i vlasnikom. Unos direktorija logički se razlikuje od datoteke. Na primjer, ista datoteka može imati više od jednog imena u više direktorija.
Nažalost, pojam datoteka nije uvijek korišten da znači točno istu stvar. Ali logika veličine datoteke dolazi iz modela u kojem unos direktorija povezuje datoteku s direktorijem, zatim se imena datoteka i povezani meta podaci pohranjuju u imenik.
Slijedi odgovor iz Cort Ammon:
Semantičko značenje veličine datoteke razlikuje se od onog koji koristite.
Postoji mnogo veličina datoteka koje su smislene. Najčešći, i onaj koji vidite ovdje, je broj bajtova u datoteci. Ako je datoteka prazna tekstualna datoteka, ona doista može sadržavati nulu. Taj je broj važan programerima jer često moramo otvoriti datoteku, pročitati sve podatke i zatvoriti ih. Moramo znati koliko bajtova podataka će biti u datoteci kako bismo mogli planirati unaprijed.
Još jedno značenje proizlazi iz načina na koji većina datoteka pohranjuje 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 ni višestruko od 64 kB. To zvuči neučinkovito, ali može učiniti knjigovodstvo prilično jednostavnijim, a često i jednostavnijim znači brže.
Treće značenje, na koje povlačite, bio bi stvarni broj bitova potrebnih na tvrdom disku da bi se opisala prisutnost datoteke. To uključuje informacije koje se obično pohranjuju odvojeno od datoteke. Na primjer, u Linuxu, koncept imena datoteke je pohranjen u inode za direktorij koji sadrži datoteku. [Na temelju unosa iz drugih komentara, ovo je (tehnički) pohranjeno u podacima direktorija. Kad sam ovo napisao, mislio sam na slučaj malog imenika. Podaci manji od 156 bajtova mogu se pohraniti izravno u inode.] Ovo nije uobičajeno značenje jer je strašno teško odrediti bez poznavanja strahovito dubokog unutarnjeg funkcioniranja vašeg datotečnog sustava (kao što je obračunavanje prostora potrebnog za pohranjivanje svih dozvola za datoteku). Međutim, ako imate tvrdi disk od 1.000.000 bajtova i želite znati koliko velika datoteka može stati na taj tvrdi disk, to će za vas biti vrlo važno značenje!
Imate li što dodati objašnjenju? Zvuk isključen u komentarima. Želite li pročitati više odgovora od drugih tehničkih korisnika Stack Exchangea? Pogledajte cjelokupnu temu za raspravu ovdje.