If-Koubou

Cum poate fi dimensiunea unui fișier zero?

Cum poate fi dimensiunea unui fișier zero? (Cum să)

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 Q & A.

Intrebarea

Cititorul super-utilizator Eugene S dorește să știe cum poate fi o dimensiune a unui fișier:

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 pentru a-și păstra propriul nume). Cum poate fi explicat acest lucru?

Cum este posibil ca un fișier să aibă o dimensiune de zero?

Răspunsul

Utilizatorii 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 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 directorului ș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 destul de simplu operațiunile de contabilitate și, adesea, simplifică mijloacele mai rapide.

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 datelor din alte comentarii, acest lucru este (stocat 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 determinat 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 care se potrivește pe unitatea hard-disc, acest lucru va fi o semnificație foarte importantă pentru dvs.!

Aveți ceva de adăugat la explicație? Sunați în comentarii. Doriți să citiți mai multe răspunsuri de la alți utilizatori de tehnologie Stack Exchange? Check out discuția completă aici.