If-Koubou

Kā faila izmērs var būt nulle?

Kā faila izmērs var būt nulle? (Kā)

Mēs visi laiku pa laikam saskaras ar "situāciju" mūsu datoros, kas mūs pilnīgi pārtrauc, piemēram, failu ar nulles lielumu, bet kā tas ir pat iespējams? Šodienas SuperUser Q & A ziņai ir atbildes uz sajaukt lasītāja jautājumu.

Šodienas jautājumu un atbilžu sesija mums priecājas par SuperUser - Stack Exchange dalību, kas ir kopienas vadīta Q & A tīmekļa vietņu grupa.

Jautājums

SuperUser lasītājs Eugene S vēlas uzzināt, kā faila izmērs var būt nulle:

Tas ir kaut kas, ko es uzbāzu un nevarēju iedomāties pareizu skaidrojumu. Ja es izveidoju tukšu * .txt fails uz mana datora un pēc tam apskatīt to izmēru, tas parāda nulles lielumu. Kā tas ir iespējams? Es domāju, pat ja fails pati par sevi ir tukšs, tam joprojām jābūt kādam izmēram (pat ja tas ir tikai, lai saglabātu savu vārdu). Kā to var izskaidrot?

Kā ir iespējams, lai failam būtu nulles lielums?

Atbilde

SuperUser atbalstītāji David Schwartz un Cort Ammon ir atbilde mums. Pirmkārt, David Schwartz:

Tas ir iespējams, jo tur tiešām nav faila. Ir tikai direktoriju ieraksts ar nosaukumu un īpašnieku. Kataloga ieraksts ir loģiski atšķirīgs no faila. Piemēram, vienam failam var būt vairāk nekā viens vārds vairāk nekā vienā direktorijā.

Diemžēl vārdu fails ne vienmēr tiek izmantots, lai precīzi apzīmētu to pašu. Taču faila lieluma loģika nāk no modeļa, kurā kataloga ieraksts piešķir failu direktorijai, pēc tam faila nosaukumi un saistītie meta dati tiek glabāti direktorijā.

Pēc Cort Ammona atbildes:

Faila lieluma semantiskā nozīme atšķiras no tā, kuru izmantojat.

Ir daudz failu izmēru, kas ir nozīmīgi. Visbiežāk sastopamais, un tas, kuru redzat šeit, ir faila bitu skaits. Ja fails ir tukšs teksta fails, tas var saturēt nulles bitus. Šis skaitlis ir svarīgs programmētājiem, jo ​​mums bieži vien ir nepieciešams atvērt failu, lasīt visus datus un aizvērt to. Mums jāzina, cik failos būs datu baiti, lai mēs varētu plānot tālāk.

Vēl viena nozīme rodas no tā, kā lielākā daļa failu sistēmas glabā datus. Lielākā daļa failu sistēmu uzglabā datus blokos. Piemēram, failu sistēma var saglabāt datus 64 kB blokos, ti, tā nekad nedos nekādus nodalījumus, kas nav pat vairāk kā 64 kB. Tas izklausās neefektīvs, taču tas var padarīt grāmatvedību diezgan vienkāršāku un bieži vienkāršāku nozīmē ātrāk.

Trešā nozīme, kuru jūs satverat, būtu faktiskais bitu skaits, kas nepieciešams cietajā diskā, lai aprakstītu faila klātbūtni. Tas ietver informāciju, kas parasti tiek uzglabāta atsevišķi no faila. Piemēram, Linux sistēmā faila nosaukuma jēdziens tiek saglabāts tā direktorija inodei, kurā ir šis fails. [Pamatojoties uz citu komentāru ieguldījumu, tas (tehniski) tiek glabāts kataloga datos. Kad es to uzrakstīju, es domāju par nelielu direktoriju. Dati, kas ir mazāki par 156 baitiem, var tikt saglabāti tieši inode.] Šī nav vispāratzīta jēga, jo to ir ļoti grūti noteikt, nezinot jūsu failu sistēmas ārkārtīgi dziļo iekšējo darbību (piemēram, ņemot vērā vietu, kas nepieciešama, lai saglabātu visas atļaujas failā). Tomēr, ja jums ir cietais disks ar 1 000 000 baitu un vēlaties uzzināt, cik liels faila lielums var ietilpt šajā cietajā diskā, tas jums būs ļoti nozīmīgs!

Vai kaut ko pievienot paskaidrojumam? Skatieties komentāros. Vēlaties lasīt citas atbildes no citiem tehnoloģiju savvy Stack Exchange lietotājiem? Šeit skatiet pilnu diskusiju pavedienu.