Kā faila izmērs var būt nulle?
Mēs visi reizēm pāriet pie "situācijas" mūsu datoros, kas atstāj mūs pilnīgi neskaidri, piemēram, failu, kura izmērs ir nulle, bet kā tas ir pat iespējams? Šodienas SuperUser Q&A ziņojumam ir atbildes uz neskaidru lasītāja jautājumu.
Šodienas jautājumu un atbilžu sesija mums dod pieklājību no SuperUser-Stack Exchange apakšnodaļas, kas ir kopienas orientēta Q & A tīmekļa vietņu grupa.
Jautājums
SuperUser lasītājs Eugene S vēlas zināt, kā faila lielums var būt nulle:
Tas ir kaut kas, ko es uzbraucu un nevarēju iedomāties pareizu skaidrojumu. Ja es izveidoju tukšu * .txt fails manā datorā un pēc tam apskatīt tā lielumu, tas parāda nulles izmēru. Kā tas ir iespējams? Es domāju, ka pat tad, ja pats fails ir tukšs, tam joprojām ir jābūt dažiem izmēriem (pat ja tas ir tikai, lai saglabātu savu nosaukumu). Kā to var izskaidrot?
Kā ir iespējams, ka faila lielums ir nulle?
Atbilde
SuperUser ieguldītājiem David Schwartz un Cort Ammon ir atbilde mums. Pirmkārt, David Schwartz:
Tas ir iespējams, jo nav neviena faila. Ir tikai direktorija ieraksts ar nosaukumu un īpašnieku. Kataloga ieraksts loģiski atšķiras no faila. Piemēram, tajā pašā failā vairāk nekā vienā direktorijā var būt vairāki vārdi.
Diemžēl termins "fails" ne vienmēr tiek lietots, lai precīzi nozīmētu to pašu. Bet faila lieluma loģika nāk no modeļa, kurā direktorija ieraksts pievieno failu direktorijai, tad failu nosaukumi un saistītie meta dati tiek saglabāti direktorijā.
Seko atbilde no Cort Ammon:
Faila lieluma semantiskā nozīme atšķiras no tās, ko izmantojat.
Ir daudzi failu izmēri, kas ir nozīmīgi. Visbiežāk sastopamais un šeit redzamais ir baitu skaits failā. Ja fails ir tukšs teksta fails, tas var saturēt nulles baitus. Šis skaitlis ir svarīgs programmētājiem, jo mums bieži ir nepieciešams atvērt failu, izlasīt visus datus un aizvērt to. Mums ir jāzina, cik daudz datu būs failā, lai mēs varētu plānot.
Vēl viena nozīme rodas no tā, kā lielākā daļa failu sistēmu glabā datus. Lielākā daļa failu sistēmu glabā datus blokos. Piemēram, failu sistēma var saglabāt datus 64 kB blokos, kas nozīmē, ka tā nekad nepiešķir neko, kas nav pat 64 kB vairākkārtējs. Tas izklausās neefektīvi, bet tas var padarīt grāmatvedību diezgan vienkāršāku un bieži vien vienkāršāku līdzekļu izmantošanu.
Trešā nozīme, kuru jūs velkat, būtu faktiskais bitu skaits, kas nepieciešami cietajā diskā, lai aprakstītu faila klātbūtni. Tas ietver informāciju, kas parasti tiek glabāta atsevišķi no faila. Piemēram, Linux, faila nosaukuma jēdziens tiek saglabāts direktorijā, kurā ir fails. [Pamatojoties uz citu komentāru ievadi, tas (tehniski) tiek saglabāts direktorijas datiem. Kad es to uzrakstīju, es domāju par mazo direktoriju. Datus, kas ir mazāki par 156 baitiem, var glabāt tieši inode.] Tas nav vispārpieņemts jēdziens, jo ir ārkārtīgi grūti noteikt, nezinot ārkārtīgi dziļu jūsu failu sistēmas iekšējo darbību (piemēram, par vietu, kas nepieciešama visu atļauju saglabāšanai failā). Tomēr, ja jums ir 1 000 000 baitu cietais disks un vēlaties zināt, cik liels fails var ietilpt šajā cietajā diskā, tas būs ļoti svarīga nozīme jums!
Vai kaut kas jāpievieno paskaidrojumam? Skaņas izslēgšana komentāros. Vai vēlaties lasīt vairāk atbildes no citiem tehnoloģiju gudriem Stack Exchange lietotājiem? Apskatiet pilnu diskusiju pavedienu šeit.