సి ప్రోగ్రామింగ్‌లో ఫైల్ పరిమాణాన్ని ఎలా కనుగొనాలి

Si Programing Lo Phail Parimananni Ela Kanugonali



మీరు C ప్రోగ్రామింగ్‌కి కొత్తవా మరియు ఫైల్ పరిమాణాన్ని కనుగొనే మార్గం కోసం వెతుకుతున్నారా? మరెక్కడికీ వెళ్లకు! ఈ గైడ్‌లో, మీరు C ప్రోగ్రామింగ్‌లో ఫైల్ పరిమాణాన్ని కనుగొనే ప్రక్రియను నేర్చుకుంటారు. ఫైల్ లోపల డేటాను ఉంచడానికి ఉపయోగించిన బైట్‌ల సంఖ్యను ఫైల్ పరిమాణంగా సూచిస్తారు. ఫైల్ పరిమాణాన్ని తెలుసుకోవడం ద్వారా, మీరు కాపీ చేయడం, చదవడం లేదా రాయడం వంటి వివిధ ఫైల్-హ్యాండ్లింగ్ కార్యకలాపాలను నిర్వహించవచ్చు.

ఈ ట్యుటోరియల్ మరియు సాధారణ కోడ్ ఉదాహరణలలో పేర్కొన్న దశల వారీ మార్గదర్శకాల ద్వారా, మీరు ఏదైనా ఫైల్ పరిమాణాన్ని త్వరగా కనుగొనవచ్చు.







C ప్రోగ్రామింగ్‌లో ఫైల్ పరిమాణాన్ని కనుగొనండి

క్రింద పేర్కొన్న Cలో ఫైల్ పరిమాణాన్ని కనుగొనడానికి వివిధ మార్గాలు ఉన్నాయి.



1: stat() ఫంక్షన్‌ని ఉపయోగించడం

C లో, ఫైల్ యొక్క పరిమాణాన్ని కనుగొనడానికి అత్యంత సరళమైన పద్ధతిని ఉపయోగించడం stat() సిస్టమ్ కాల్ ఫంక్షన్. ది stat() ఫంక్షన్ ఫైల్ స్థితి సమాచారాన్ని తిరిగి పొందుతుంది మరియు దానిని ఒక structలో నిల్వ చేస్తుంది. ఈ నిర్మాణంలోని సభ్యులలో ఒకరు st_size , ఇది ఫైల్ పరిమాణాన్ని బైట్‌లలో ఇస్తుంది. ఈ పద్ధతి ఫైల్ పాయింటర్‌ను మాన్యువల్‌గా తరలించడాన్ని నివారిస్తుంది, ఇది ఉపయోగించడానికి సులభతరం చేస్తుంది మరియు తక్కువ లోపానికి గురవుతుంది.



# చేర్చండి
#ని చేర్చండి

పూర్ణాంక ప్రధాన ( )
{
నిర్మాణం stat స్టంప్;
పొడవు పరిమాణం ;
ఉంటే ( stat ( 'C_File.txt' , & సెయింట్ ) == 0 )
{
పరిమాణం = st.st_size;
printf ( 'ఫైల్ పరిమాణం %ld బైట్లు. \n ' , పరిమాణం ) ;
}
తిరిగి 0 ;
}


ఈ కోడ్ అనే ఫైల్ పరిమాణాన్ని తిరిగి పొందుతుంది C_File.txt ఉపయోగించి stat() నుండి పద్ధతి గ్రంధాలయం. ది st_size struct stat యొక్క మూలకం, దీనిలో ఫంక్షన్ ఫైల్ గురించి సమాచారాన్ని ఉంచుతుంది మరియు ఫైల్ పరిమాణాన్ని కనుగొనడానికి మమ్మల్ని అనుమతిస్తుంది. ఫైల్ పరిమాణం వేరియబుల్ పరిమాణంలో ఉంచబడుతుంది, ఆపై printf() మెసేజ్‌తో పాటు పరిమాణాన్ని కన్సోల్‌కు ప్రింట్ చేయడానికి ఉపయోగించబడుతుంది. యాక్సెస్ చేయడానికి ప్రయత్నించే ముందు st_size ఆస్తి, if స్టేట్‌మెంట్ ధృవీకరిస్తుంది stat() ఫంక్షన్ కాల్ విజయవంతమైంది. కోడ్ విజయవంతంగా అమలు చేయబడిందని చూపించడానికి 0ని అందిస్తుంది.





అవుట్‌పుట్


2: fstat() ఫంక్షన్‌ని ఉపయోగించడం

ఇదే విధమైన మరొక ఫంక్షన్ stat() ఉంది fstat() ఫంక్షన్, ఇది సమానం stat() కానీ ఫైల్ పేరుకు బదులుగా ఓపెన్ ఫైల్‌లో పని చేస్తుంది. ది fstat() ఫంక్షన్ ద్వారా వివరించబడిన ఓపెన్ ఫైల్ గురించి సమాచారాన్ని తిరిగి పొందుతుంది ఫైల్ డిస్క్రిప్టర్ దానికి పాస్ అయింది. ఓపెన్ ఫైల్‌కి సూచన పూర్ణాంకం ద్వారా సూచించబడుతుంది ఫైల్ డిస్క్రిప్టర్ . అదేవిధంగా stat(), fstat() బైట్‌లలో దాని పరిమాణంతో సహా అందించబడిన ఫైల్ గురించి స్థితి సమాచారాన్ని అందిస్తుంది.



# చేర్చండి
#ని చేర్చండి
# చేర్చండి

పూర్ణాంక ప్రధాన ( ) {
int fd;
నిర్మాణం stat స్టంప్;
fd = తెరువు ( 'C_File.txt' , O_RDONLY ) ;
ఉంటే ( రాష్ట్రం ( ఎఫ్ డి, & సెయింట్ ) == - 1 ) {
printf ( 'ఫైల్ సమాచారాన్ని పొందడంలో లోపం ఏర్పడింది. \n ' ) ;
తిరిగి 1 ;
}
printf ( 'ఫైల్ పరిమాణం %ld బైట్లు. \n ' , st.st_size ) ;
దగ్గరగా ( ఎఫ్ డి ) ;
తిరిగి 0 ;
}


పై కోడ్‌లో, ఫైల్ మొదట ఈ ఉదాహరణలో కాల్ చేయడం ద్వారా తెరవబడుతుంది ఓపెన్() ఫైల్ పేరు మరియు ది O_RDONLY ఎంపిక, ఇది ఫైల్‌ను రీడ్-ఓన్లీ మోడ్‌లో తెరుస్తుంది. ఎ ఫైల్ డిస్క్రిప్టర్ (fd) ఫంక్షన్ ద్వారా తిరిగి ఇవ్వబడుతుంది. ఆ తరువాత, మేము ఉపయోగిస్తాము fstat() ఫైల్ గురించి సమాచారాన్ని పొందే పద్ధతి, దానిని పాయింటర్‌గా పంపడం సెయింట్ నిర్మాణం రెండవ పారామీటర్‌గా మరియు ఫైల్ డిస్క్రిప్టర్ మొదటి ఆర్గ్యుమెంట్‌గా ఉంటుంది. ది సెయింట్ నిర్మాణం అంటే ఈ ఫంక్షన్ ఫైల్ సమాచారాన్ని తిరిగి పొందిన తర్వాత ఉంచుతుంది.

ఫైల్ పరిమాణం బైట్‌లలో ఉంచబడుతుంది st_size సభ్యుడు సెయింట్ నిర్మాణం, ఉపయోగిస్తున్నప్పుడు లోపం లేకుంటే ముద్రించబడుతుంది fstat() ఫంక్షన్. లేకపోతే, అది దోష సందేశాన్ని ముద్రిస్తుంది.

అవుట్‌పుట్


3: fseek() మరియు ftel() ఫంక్షన్లను ఉపయోగించడం

C ప్రోగ్రామింగ్‌లో ఫైల్ పరిమాణాన్ని కనుగొనడానికి మరొక పద్ధతిని ఉపయోగించడం fseek() మరియు ftel () విధులు. ది ftel () పద్ధతి ఫైల్ పాయింటర్ యొక్క ప్రస్తుత స్థితిని అందిస్తుంది, అయితే fseek() ఫంక్షన్ ఫైల్ పాయింటర్‌ను ఫైల్‌లో ఇచ్చిన ప్రదేశానికి తరలిస్తుంది. బైట్‌లలో ఫైల్ పరిమాణాన్ని ఉపయోగించి కనుగొనవచ్చు ftel () ఉపయోగించిన తర్వాత ప్రస్తుత స్థానాన్ని పొందేందుకు ఫంక్షన్ fseek() ఫైల్ పాయింటర్‌ను ఫైల్ చివరకి మార్చడానికి ఫంక్షన్.

# చేర్చండి
# చేర్చండి

పూర్ణాంక ప్రధాన ( )
{
ఫైల్ * fp;
పొడవు పరిమాణం ;

fp = ఫోపెన్ ( 'C_File.txt' , 'rb' ) ;
fseek ( fp, 0L, SEEK_END ) ;
పరిమాణం = తప్పుగా చెప్పు ( fp ) ;
fclose ( fp ) ;
printf ( 'ఫైల్ పరిమాణం = %ld బైట్లు. \n ' , పరిమాణం ) ;

తిరిగి 0 ;
}


పై కోడ్‌లో, ఉపయోగించి fopen() పద్ధతి, అప్లికేషన్ మొదట తెరుస్తుంది C_File.txt బైనరీ మోడ్‌లో. ది fseek() ఫంక్షన్ అప్పుడు ఉపయోగిస్తుంది SEEK_END ఫైల్ పాయింటర్‌ను ఫైల్ చివరకి మార్చే ఎంపిక. ఫైల్ యొక్క ప్రస్తుత స్థానం, దాని పరిమాణానికి బైట్‌లలో అనుగుణంగా ఉంటుంది, తర్వాత దీనిని ఉపయోగించి కనుగొనవచ్చు ftel () ఫంక్షన్. కోడ్ అప్పుడు ఉపయోగిస్తుంది fclose() కన్సోల్‌కు ఫైల్ పరిమాణాన్ని ప్రింట్ చేసిన తర్వాత ఫైల్‌ను మూసివేయడానికి పద్ధతి.

అవుట్‌పుట్


4: ఫైల్ లెంగ్త్() ఫంక్షన్‌ని ఉపయోగించడం

ఫైల్ మేనేజ్‌మెంట్ లైబ్రరీని ఉపయోగించడం తదుపరి పద్ధతి, ఇది అనేక ఫైల్ మానిప్యులేషన్ ఫంక్షన్‌లను అందిస్తుంది, ఇందులో పొందే ఫంక్షన్‌లు ఫైల్ పరిమాణం . ఉదాహరణకు, ఫంక్షన్ ఫైల్ పొడవు() ఫైల్ యొక్క పొడవును బైట్‌లలో అందిస్తుంది, దాని ఫైల్ పేరును అందించబడుతుంది. ఈ ఫంక్షన్‌కు హెడర్ ఫైల్ అవసరం .

మరో ఫంక్షన్ కూడా ఉంది, _filelengthi64(), ఇది 4 GB కంటే పెద్ద ఫైల్‌ల కోసం బైట్‌లలో ఫైల్ పొడవును అందిస్తుంది. రెండు ఫంక్షన్‌ల మధ్య వ్యత్యాసం వాటి రిటర్న్ విలువల రకం, ఇది ఫంక్షన్ ఎన్ని బైట్‌లను నిర్వహించగలదో చూపుతుంది.

# చేర్చండి
# చేర్చండి

పూర్ణాంక ప్రధాన ( )
{
పొడవు పరిమాణం ;
చార్ * fname = 'C_File.txt' ;
పరిమాణం = ఫైల్ పొడవు ( ఫైల్నో ( ఫోపెన్ ( పేరు, 'rb' ) ) ) ;
printf ( 'ఫైల్ పరిమాణం = %ld బైట్లు. \n ' , పరిమాణం ) ;

తిరిగి 0 ;
}


ఫైల్ పరిమాణం C_File.txt Windows ఫైల్ మేనేజ్‌మెంట్ లైబ్రరీని ఉపయోగించి ఈ కోడ్ ద్వారా బైట్‌లలో పొందబడుతుంది. తెరిచిన ఫైల్ యొక్క ఫైల్ డిస్క్రిప్టర్ అందించినప్పుడు, పద్ధతి ఫైల్ పొడవు() ఫైల్ పొడవును బైట్‌లలో అందిస్తుంది.

fopen() ఈ కోడ్‌లో ఫైల్‌ను చదవడానికి-మాత్రమే బైనరీ మోడ్‌లో తెరుస్తుంది మరియు ఫైల్నో() తెరిచిన ఫైల్ యొక్క ఫైల్ డిస్క్రిప్టర్‌ను అందిస్తుంది. అప్పుడు, printf() ఫైల్ పరిమాణాన్ని ముద్రించడానికి ఉపయోగించబడుతుంది. ఫంక్షన్ 0ని తిరిగి ఇస్తుంది, ఇది విజయవంతంగా అమలు చేయబడిందని సూచిస్తుంది.

అవుట్‌పుట్


ముగింపు

కనుగొనడానికి అనేక పద్ధతులు ఉన్నాయి C లో బైట్‌లలో ఫైల్ పరిమాణం , ప్రతి దాని స్వంత ప్రయోజనాలు మరియు అప్రయోజనాలు ఉన్నాయి. పై ట్యుటోరియల్‌లో నాలుగు వేర్వేరు పద్ధతులు చర్చించబడ్డాయి; stat() ఫంక్షన్, fstat() ఫంక్షన్, fseek() మరియు ftel () విధులు, మరియు ఫైల్ పొడవు() ఫంక్షన్. ఈ ఫంక్షన్‌లను అర్థం చేసుకోవడం వల్ల వినియోగదారులు మీ సిస్టమ్‌లోని ఏదైనా ఫైల్ పరిమాణాన్ని కనుగొనడంలో సహాయపడుతుంది.