8Sep
Am întâlnit ocazional o "situație" pe computerele noastre care ne lasă complet dezamăgiți, cum ar fi un fișier care are dimensiunea zero, dar cum este posibil acest lucru? Astăzi, postul SuperUser Q & A are răspunsurile la o întrebare confuză a cititorului.
Întrebarea de astăzi &Sesiunea de răspuns vine de la amabilitatea SuperUser - o subdiviziune a Stack Exchange, o grupare bazată pe comunitate a site-urilor web Q & A.
Întrebare Întrebarea
SuperUser cititorul Eugene S vrea să știe cum poate fi o dimensiune a fișierului zero:
Acesta este un lucru în care am intrat și nu m-am gândit la o explicație corectă.Dacă creez un fișier *. txt gol pe calculatorul meu și apoi uit la dimensiunea acestuia, acesta 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?
Responsabilii
pentru SuperUser Răspuns David Schwartz și Cort Ammon au răspunsul pentru noi. Primul sus, 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, fișierul termen 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 de la Cort Ammon:
Sensul semantic al dimensiunii fișierului este diferit de cel pe care îl folosiț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.
Un al treilea sens, pe care îl trageț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. ] Aceasta nu este o semnificație frecvent utilizată, 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 a stoca toate permisiunile 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 un înțeles foarte important pentru dvs.!
Trebuie să adăugați ceva 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.