Vai esat jauns C programmēšanas lietotājs un meklējat veidu, kā atrast faila lielumu? Neejiet nekur citur! Šajā rokasgrāmatā jūs uzzināsit, kā atrast faila lielumu C programmēšanas procesā. Datu glabāšanai failā izmantoto baitu skaitu sauc par faila lielumu. Zinot faila lielumu, varat veikt dažādas failu apstrādes darbības, tostarp kopēšanu, lasīšanu vai rakstīšanu.
Izmantojot šajā apmācībā minētās pakāpeniskās vadlīnijas un vienkāršus kodu piemērus, varat ātri atrast jebkura faila lielumu.
Atrodiet faila lielumu programmā C programmēšana
Tālāk ir minēti dažādi veidi, kā atrast faila lielumu programmā C.
1: izmantojot stat() funkciju
Programmā C visvienkāršākā metode faila lieluma noteikšanai ir izmantot stat() sistēmas izsaukuma funkcija. The stat() funkcija izgūst faila statusa informāciju un saglabā to struktūrā. Viens no šīs struktūras dalībniekiem ir st_size , kas norāda faila lielumu baitos. Šī metode ļauj izvairīties no nepieciešamības manuāli pārvietot faila rādītāju, padarot to vieglāk lietojamu un mazāk kļūdu.
#include
#include
int galvenais ( )
{
struktūra stat st;
garš Izmērs ;
ja ( stat ( 'C_File.txt' , & st ) == 0 )
{
Izmērs = st.st_size;
printf ( 'Faila lielums ir %ld baiti. \n ' , Izmērs ) ;
}
atgriezties 0 ;
}
Šis kods izgūst izsauktā faila lielumu C_File.txt izmantojot stat() metode no
Izvade
2: Fstat() funkcijas izmantošana
Vēl viena līdzīga funkcija stat() ir fstat() funkcija, kas ir līdzvērtīga stat() bet darbojas ar atvērtu failu, nevis faila nosaukumu. The fstat() funkcija izgūst informāciju par atvērto failu, ko apraksta faila deskriptors nodots tai. Atsauce uz atvērtu failu tiek attēlota ar veselu skaitli faila deskriptors . Līdzīgi kā stat(), fstat() atgriež statusa informāciju par sniegto failu, tostarp tā lielumu baitos.
#include
#include
#include
int galvenais ( ) {
int fd;
struktūra stat st;
fd = atvērts ( 'C_File.txt' , O_RDONLY ) ;
ja ( Valsts ( fd, & st ) == - 1 ) {
printf ( 'Kļūda, iegūstot faila informāciju. \n ' ) ;
atgriezties 1 ;
}
printf ( 'Faila lielums ir %ld baiti. \n ' , st.st_size ) ;
aizveriet ( fd ) ;
atgriezties 0 ;
}
Iepriekš minētajā kodā fails sākotnēji tiek atvērts šajā piemērā, izsaucot atvērt () funkcija ar faila nosaukumu un O_RDONLY opciju, kas atver failu tikai lasīšanas režīmā. A faila deskriptors (fd) tiek atgriezta funkcija. Pēc tam mēs izmantojam fstat() metode, lai iegūtu informāciju par failu, nosūtot to kā rādītāju uz st struktūra kā otrais parametrs un faila deskriptors kā pirmais arguments. The st struktūra ir vieta, kur šī funkcija saglabā informāciju par failu pēc tā izgūšanas.
Faila lielums baitos, kas tiek glabāts st_size biedrs st struktūra, tiek izdrukāts, ja lietošanas laikā nav radusies kļūda fstat() funkciju. Pretējā gadījumā tas izdrukā kļūdas ziņojumu.
Izvade
3: Fseek() un ftell() funkciju izmantošana
Vēl viena metode faila lieluma noteikšanai C programmēšanā ir izmantot fseek() un ftell() funkcijas. The ftell() metode atgriež faila rādītāja pašreizējo pozīciju, savukārt funkcija fseek () pārvieto faila rādītāju uz noteiktu vietu failā. Faila lielumu baitos var uzzināt, izmantojot ftell() funkcija, lai iegūtu pašreizējo pozīciju pēc lietošanas fseek() funkcija, lai pārvietotu faila rādītāju uz faila beigām.
#include#include
int galvenais ( )
{
FILE * fp;
garš Izmērs ;
fp = fopen ( 'C_File.txt' , 'rb' ) ;
fseek ( fp, 0L, SEEK_END ) ;
Izmērs = ftell ( fp ) ;
fclose ( fp ) ;
printf ( 'Faila lielums = %ld baiti. \n ' , Izmērs ) ;
atgriezties 0 ;
}
Iepriekš minētajā kodā, izmantojot fopen () metodi, lietojumprogramma vispirms atver C_File.txt binārajā režīmā. The fseek() funkcija pēc tam izmanto SEEK_END opciju, lai pārvietotu faila rādītāju uz faila beigām. Faila pašreizējo atrašanās vietu, kas atbilst tā lielumam baitos, pēc tam var atrast, izmantojot ftell() funkciju. Pēc tam kods izmanto fclose() metode, lai aizvērtu failu pēc faila izmēra drukāšanas konsolē.
Izvade
4: Funkcijas filelength() izmantošana
Nākamā metode ir izmantot failu pārvaldības bibliotēku, kas nodrošina daudzas failu manipulācijas funkcijas, tostarp funkcijas, kas jāiegūst faila lielums . Piemēram, funkcija faila garums () atgriež faila garumu baitos, ņemot vērā tā faila nosaukumu. Šai funkcijai ir nepieciešams galvenes fails
Ir arī cita funkcija, _filengthi64(), kas atgriež faila garumu baitos failiem, kas lielāki par 4 GB. Atšķirība starp abām funkcijām ir to atgriešanas vērtību veids, kas parāda, cik baitus funkcija var apstrādāt.
#include#include
int galvenais ( )
{
garš Izmērs ;
char * fname = 'C_File.txt' ;
Izmērs = faila garums ( faila nr ( fopen ( fname, 'rb' ) ) ) ;
printf ( 'Faila lielums = %ld baiti. \n ' , Izmērs ) ;
atgriezties 0 ;
}
Faila lielums C_File.txt baitos tiek iegūts ar šo kodu, izmantojot Windows failu pārvaldības bibliotēku. Ja tiek norādīts atvērtā faila faila deskriptors, metode faila garums () atgriež faila garumu baitos.
fopen () atver failu tikai lasāmā binārajā režīmā šajā kodā un fileno() atgriež atvērtā faila faila deskriptoru. Tad printf() tiek izmantots faila izmēra drukāšanai. Pēc tam funkcija atgriež 0, kas norāda, ka tā ir veiksmīgi izpildīta.
Izvade
Secinājums
Ir vairākas metodes, kā atrast faila lielums baitos C , katram ir savas priekšrocības un trūkumi. Iepriekš minētajā apmācībā ir apskatītas četras dažādas metodes; stat() funkcija, fstat() funkcija, fseek() un ftell() funkcijas un faila garums () funkciju. Izpratne par šīm funkcijām palīdzēs lietotājiem atrast jebkura faila lielumu jūsu sistēmā.