Cum poate fi dimensiunea fișierului zero?
Cu toții întâlnim ocazional o "situație" pe computerele noastre care ne lasă complet derutați, cum ar fi un fișier care are dimensiunea zero, dar cum este posibil acest lucru? Postul de astăzi SuperUser Q & A are răspunsurile la o întrebare confuză a cititorului.
Sesiunea de întrebări și răspunsuri din ziua de astăzi vine de la amabilitatea SuperUser - o subdiviziune a Stack Exchange, o grupare bazată pe comunitate a site-urilor web Q & A.
Intrebarea
Cititorul superutilizatorului Eugene S dorește să știe cum dimensiunea unui fișier poate fi zero:
Acesta este un lucru în care am intrat și nu m-am gândit la o explicație corectă. Dacă creez un gol * fișier .txt pe calculatorul meu și apoi uita-te la dimensiunea sa, arată o dimensiune de zero. Cum este posibil? Adică chiar dacă fișierul în sine este gol, acesta trebuie să aibă o anumită dimensiune (chiar dacă este doar să-și păstreze propriul nume). Cum poate fi explicat acest lucru?
Cum este posibil ca un fișier să aibă o dimensiune de zero?
Răspunsul
Contribuitorii SuperUser David Schwartz și Cort Ammon au răspunsul pentru noi. În primul rând, David Schwartz:
Este posibil pentru că nu există nici un dosar. Există doar o intrare în director cu un nume și un proprietar. Înregistrarea directorului este logic diferită de fișier. De exemplu, același fișier poate avea mai mult de un nume în mai mult de un singur director.
Din păcate, termenul de fișier nu este întotdeauna folosit pentru a însemna exact același lucru. Dar logica mărimii fișierului vine de la modelul în care o intrare de director atașează un fișier unui director, atunci numele fișierelor și meta datele conexe sunt stocate în director.
Urmat de răspunsul lui Cort Ammon:
Semnificația semantică a dimensiunii fișierului este diferită de cea pe care o utilizați.
Există multe dimensiuni de fișiere care sunt semnificative. Cea mai obișnuită și cea pe care o vedeți aici este numărul de octeți din fișier. Dacă fișierul este un fișier text gol, acesta poate conține într-adevăr zero octeți. Acest număr este important pentru programatori, deoarece adesea trebuie să deschidem un fișier, să citim toate datele și să îl închidem. Trebuie să știm câte octeți de date vor fi în dosar, astfel încât să putem planifica înainte.
O altă semnificație apare din modul în care majoritatea sistemelor de fișiere stochează date. Cele mai multe sisteme de fișiere stochează datele în blocuri. De exemplu, sistemul de fișiere poate stoca date pe blocuri de 64 kB, ceea ce înseamnă că nu va aloca niciodată nimic care nu este un multiplu de 64 kB. Sunetul este ineficient, dar poate face contabilitatea destul de simplu și, adesea, mai simplu înseamnă mai rapid.
O a treia semnificație, pe care o traversați, ar fi numărul real de biți necesari pe hard-disk pentru a descrie prezența unui fișier. Aceasta include informații care sunt de obicei stocate separat de fișier. De exemplu, în Linux, conceptul de nume de fișier este stocat în inode pentru directorul care conține fișierul. [Pe baza informațiilor din alte comentarii, acest lucru este (stocat în mod tehnic) în datele din director. Când am scris asta, m-am gândit la cazul cu directorul mic. Datele mai mici de 156 octeți pot fi stocate direct în inode.] Acest lucru nu este un sens folosit în mod obișnuit, deoarece este extrem de greu de stabilit fără a cunoaște funcționările interioare extraordinare ale sistemului dvs. de fișiere (cum ar fi contabilizarea spațiului necesar pentru stocarea tuturor permisiunilor din fișier). Cu toate acestea, dacă aveți o unitate de hard disk de 1.000.000 de octeți și doriți să știți cât de mare poate fi un fișier de pe hard-disk, acesta va fi un înțeles foarte important pentru dvs.!
Aveți ceva de adăugat la explicație? Sunați în comentariile. Doriți să citiți mai multe răspunsuri de la alți utilizatori de tehnologie Stack Exchange? Check out discuția completă aici.