Hjemmeside » hvordan » Hvordan kan en filstørrelse være null?

    Hvordan kan en filstørrelse være null?

    Vi løper alle ganger over en "situasjon" på våre datamaskiner som gir oss helt forvirret, for eksempel en fil som har en størrelse på null, men hvordan er det mulig? Dagens SuperUser Q & A innlegg har svarene på en forvirret leser spørsmål.

    Dagens Spørsmål & Svar-sesjon kommer til oss med høflighet av SuperUser-en underavdeling av Stack Exchange, en fellesskapsdrevet gruppering av Q & A-nettsteder.

    Spørsmålet

    SuperUser leser Eugene S vil vite hvordan en fils størrelse kan være null:

    Dette er noe jeg kjørte inn i, og jeg kunne ikke tenke på en skikkelig forklaring. Hvis jeg lager en tom * .txt-fil på min datamaskin og deretter se på størrelsen, viser den en størrelse på null. Hvordan er det mulig? Jeg mener selv om filen selv er tom, må den fortsatt ha litt størrelse (selv om det bare er å lagre sitt eget navn). Hvordan kan dette forklares?

    Hvordan er det mulig for en fil å ha en størrelse på null?

    Svaret

    SuperUser-bidragsytere David Schwartz og Cort Ammon har svaret for oss. Først opp, David Schwartz:

    Det er mulig fordi det egentlig ikke er noen fil. Det er bare en katalogoppføring med navn og eier. Mappeoppføringen er logisk forskjellig fra filen. For eksempel kan den samme filen ha mer enn ett navn i mer enn én katalog.

    Dessverre er begrepet fil ikke alltid brukt til å bety nøyaktig det samme. Men filstørrelseslogikken kommer fra modellen der en katalogoppføring legger til en fil i en katalog, så lagres filnavn og tilhørende metadata i katalogen.

    Etterfulgt av svaret fra Cort Ammon:

    Den semantiske betydningen av filstørrelsen er forskjellig fra den du bruker.

    Det er mange filstørrelser som er meningsfulle. Den vanligste, og den du ser her, er antall byte i filen. Hvis filen er en tom tekstfil, kan den faktisk inneholde nullbyte. Dette nummeret er viktig for programmerere fordi vi ofte trenger å åpne en fil, lese alle dataene, og lukk den. Vi må vite hvor mange bytes data som skal være i filen slik at vi kan planlegge fremover.

    En annen mening skyldes hvordan de fleste filsystemer lagrer data. De fleste filsystemer lagrer data i blokker. F.eks. Kan filsystemet lagre data i 64 kB blokker, noe som betyr at det aldri vil tildele noe som ikke er et jevnt flertall på 64 kB. Dette høres ineffektivt, men det kan gjøre bokføring ganske enklere, og ofte enklere betyr raskere.

    En tredje betydning, som du slår på, ville være det faktiske antall bits som kreves på harddisken for å beskrive tilstedeværelsen av en fil. Dette inkluderer informasjon som vanligvis lagres separat fra filen. For eksempel, i Linux, er konseptet med filnavnet lagret i inoden for katalogen som inneholder filen. [Basert på innspill fra andre kommentarer, lagres dette (teknisk) i katalogenes data. Da jeg skrev dette, tenkte jeg på småkatalog saken. Data mindre enn 156 byte kan lagres direkte i inoden.] Dette er ikke en vanlig mening fordi det er veldig vanskelig å fastslå uten å kjenne til de enormt dype indre operasjonene til filsystemet ditt (for eksempel regnskap for plassen som trengs for å lagre alle tillatelsene på filen). Men hvis du har en 1.000.000 byte harddisk og vil vite hvor stor en fil kan passe på den harddisken, vil dette være en svært viktig betydning for deg!


    Har du noe å legge til forklaringen? Lyder av i kommentarene. Vil du lese flere svar fra andre tech-savvy Stack Exchange-brukere? Sjekk ut hele diskusjonstråden her.