C ప్రోగ్రామర్ టెక్స్ట్ ఫైల్ లేదా బైనరీ ఫైల్ను ఎలా సృష్టిస్తుంది, తెరుస్తుంది మరియు మూసివేస్తుంది అని వివరిస్తుంది.
ఫైల్, అంటే బైట్ల శ్రేణి, అది టెక్స్ట్ ఫైల్ అయినా లేదా బైనరీ ఫైల్ అయినా, C లాంగ్వేజ్, ఉన్నత స్థాయి ఫంక్షన్లకు యాక్సెస్ను అందించడమే కాకుండా, నిల్వ పరికరంలో ఫైల్లను ప్రాసెస్ చేయడానికి అంతర్లీన (OS) కాల్ను కూడా అందిస్తుంది. . ఈ అధ్యాయం పత్ర నిర్వహణలో ముఖ్యమైన కాల్లను వివరిస్తుంది.
ఓపెన్-ఫైల్
సాధారణంగా కొత్త ఫైల్ను సృష్టించడానికి లేదా ఇప్పటికే ఉన్న ఫైల్ని తెరవడానికి fopen () ఫంక్షన్ని ఉపయోగిస్తుంది, ఈ కాల్ ఫ్లోను నియంత్రించడానికి అవసరమైన మొత్తం సమాచారాన్ని కలిగి ఉన్న ఫైల్ రకం యొక్క వస్తువును ప్రారంభిస్తుంది. ఈ ఫంక్షన్ కాల్ యొక్క ప్రోటోటైప్ ఇక్కడ ఉంది:
FILE *fopen (const char * ఫైల్ పేరు, const char * మోడ్);
ఇక్కడ ఫైల్ పేరు అనేది ఫైల్కు పేరు పెట్టడానికి ఒక స్ట్రింగ్, యాక్సెస్ మోడ్ యొక్క విలువ క్రింది విలువలలో ఒకటి కావచ్చు:
నమూనా | వివరణ |
r | చదవడానికి అనుమతించే ఇప్పటికే ఉన్న టెక్స్ట్ ఫైల్ను తెరవండి. |
w | ఫైల్కు వ్రాయడానికి అనుమతించే టెక్స్ట్ ఫైల్ను తెరవండి. ఫైల్ ఉనికిలో లేకుంటే, కొత్త ఫైల్ సృష్టించబడుతుంది. ఇక్కడ, మీ ప్రోగ్రామ్ ఫైల్ ప్రారంభం నుండి కంటెంట్ను వ్రాస్తుంది. ఫైల్ ఉనికిలో ఉన్నట్లయితే, అది సున్నా పొడవుకు కత్తిరించబడుతుంది మరియు మళ్లీ వ్రాయబడుతుంది. |
a | టెక్స్ట్ ఫైల్ను తెరిచి, ఫైల్కు అనుబంధ మోడ్లో వ్రాయండి. ఫైల్ ఉనికిలో లేకుంటే, కొత్త ఫైల్ సృష్టించబడుతుంది. ఇక్కడ, మీ ప్రోగ్రామ్ మీరు ఇప్పటికే కలిగి ఉన్న ఫైల్లకు కంటెంట్ను జోడిస్తుంది. |
r+ | ఫైల్ను చదవడానికి మరియు వ్రాయడానికి మిమ్మల్ని అనుమతించే టెక్స్ట్ ఫైల్ను తెరవండి. |
w+ | ఫైల్ను చదవడానికి మరియు వ్రాయడానికి మిమ్మల్ని అనుమతించే టెక్స్ట్ ఫైల్ను తెరవండి. ఫైల్ ఇప్పటికే ఉన్నట్లయితే, ఫైల్ సున్నా పొడవుకు కత్తిరించబడుతుంది మరియు ఫైల్ ఉనికిలో లేనట్లయితే, కొత్త ఫైల్ సృష్టించబడుతుంది. |
a+ | ఫైల్ను చదవడానికి మరియు వ్రాయడానికి మిమ్మల్ని అనుమతించే టెక్స్ట్ ఫైల్ను తెరవండి. ఫైల్ ఉనికిలో లేకుంటే, కొత్త ఫైల్ సృష్టించబడుతుంది. ఫైల్ ప్రారంభంలో చదవడం ప్రారంభమవుతుంది మరియు వ్రాయడం అనుబంధ మోడ్లో మాత్రమే ఉంటుంది. |
బైనరీ ఫైల్ని ప్రాసెస్ చేసినట్లయితే, పై వాటిని భర్తీ చేయడానికి క్రింది యాక్సెస్ మోడ్ని ఉపయోగించండి:
"rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"
మూసివేయబడిన ఫైల్
ఫైల్ను మూసివేయడానికి, దయచేసి fclose() ఫంక్షన్ని ఉపయోగించండి. ఫంక్షన్ యొక్క నమూనా క్రింది విధంగా ఉంది:
int fclose (FILE *fp);
- ఫైల్ విజయవంతంగా మూసివేయబడితే, fclose() ఫంక్షన్ సున్నాని అందిస్తుంది మరియు లోపం EOFని తిరిగి ఇస్తుంది. ఈ ఫంక్షన్, వాస్తవానికి, బఫర్ నుండి డేటాను తీసివేస్తుంది, ఫైల్ను మూసివేస్తుంది మరియు ఆ ఫైల్ కోసం ఉపయోగించిన మొత్తం మెమరీని విడుదల చేస్తుంది. EOF అనేది హెడర్ ఫైల్ stdio.hలో నిర్వచించబడిన స్థిరాంకం
C స్టాండర్డ్ లైబ్రరీ ఫైల్లను అక్షరాల ద్వారా లేదా స్థిర-పొడవు స్ట్రింగ్గా చదవడానికి మరియు వ్రాయడానికి వివిధ విధులను అందిస్తుంది.
ఫైల్కి వ్రాయండి
స్ట్రీమ్కు అక్షరాలను వ్రాయడానికి ఇక్కడ సరళమైన విధులు ఉన్నాయి:
int fputc (int c, FILE *fp);
fputc () ఫంక్షన్ c పరామితి యొక్క అక్షర విలువను fp సూచించే అవుట్పుట్ స్ట్రీమ్లో వ్రాస్తుంది. వ్రాసినవి విజయవంతమైతే, అది వ్రాసిన అక్షరాన్ని మరియు లోపం సంభవించినట్లయితే EOFని అందిస్తుంది. స్ట్రీమ్కు శూన్యతతో స్ట్రింగ్ ముగింపును వ్రాయడానికి మీరు క్రింది ఫంక్షన్ను ఉపయోగించవచ్చు:
int fputs ( const char *s , FILE *fp );
ఫంక్షన్ fputs () స్ట్రింగ్ sని fp పాయింట్లు చూపే అవుట్పుట్ స్ట్రీమ్కు వ్రాస్తుంది. వ్రాసినవి విజయవంతమైతే, అది నాన్-నెగటివ్ విలువను మరియు లోపం సంభవించినట్లయితే EOFని అందిస్తుంది. మీరు ఫైల్కి స్ట్రింగ్ను వ్రాసే int fprintf (FILE * fp, const char * ఫార్మాట్,...) ఫంక్షన్ను కూడా ఉపయోగించవచ్చు. కింది ఉదాహరణను ప్రయత్నించండి:
గమనిక:మీ దగ్గర అందుబాటులో ఉన్న tmp డైరెక్టరీ ఉందని నిర్ధారించుకోండి మరియు అది ఉనికిలో లేకుంటే, మీరు దీన్ని ముందుగా మీ కంప్యూటర్లో సృష్టించాలి.
/ tmp సాధారణంగా Linux సిస్టమ్లో తాత్కాలిక డైరెక్టరీ. మీరు Windows సిస్టమ్లో అమలు చేస్తే, మీరు దానిని స్థానిక వాతావరణంలో ఉన్న డైరెక్టరీకి సవరించాలి, అవి: C: \ tmp, D: \ tmp, మొదలైనవి.
జీవన ఉదాహరణ
#చేర్చండి
పై కోడ్ కంపైల్ చేయబడి మరియు అమలు చేయబడినప్పుడు, అది కొత్త ఫైల్ test.txt inthe / tmp డైరెక్టరీని సృష్టిస్తుంది. మరియు రెండు వేర్వేరు ఫంక్షన్లను ఉపయోగించి రెండు లైన్లకు వ్రాస్తుంది. ఈ ఫైల్ని తర్వాత చదువుదాం.
ఫైల్ చదవండి
ఫైల్ నుండి ఒకే అక్షరాన్ని చదవడానికి క్రింది సులభమైన ఫంక్షన్:
int fgetc (FILE * fp);
fgetc () ఫంక్షన్ ఇన్పుట్ ఫైల్ నుండి fp పాయింట్లను సూచించే అక్షరాన్ని చదువుతుంది. రిటర్న్ విలువ అనేది రీడ్ క్యారెక్టర్ మరియు ఎర్రర్ ఏర్పడితే EOF. స్ట్రీమ్ నుండి స్ట్రింగ్ను చదవడానికి క్రింది ఫంక్షన్ మిమ్మల్ని అనుమతిస్తుంది:
char *fgets (char *buf, int n, FILE *fp);
fget () ఫంక్షన్ fp ద్వారా నిర్దేశించబడిన ఇన్పుట్ స్ట్రీమ్ నుండి n-1 అక్షరాలను చదువుతుంది. ఇది రీడ్ స్ట్రింగ్ను బఫర్ బఫ్కి కాపీ చేస్తుంది మరియు స్ట్రింగ్ను ముగించడానికి చివర శూన్య అక్షరాన్ని జోడిస్తుంది.
ఈ ఫంక్షన్ చివరి అక్షరాన్ని చదవడానికి ముందు విరిగిన పంక్తి అక్షరం '\ n' లేదా ఫైల్ ముగింపు యొక్క EOFని ఎదుర్కొన్నట్లయితే, లైన్ బ్రేక్లతో సహా రీడ్ క్యారెక్టర్లకు మాత్రమే తిరిగి వస్తుంది. ఫైల్ నుండి స్ట్రింగ్ను చదవడానికి మీరు int fscanf (FILE * fp, const char * ఫార్మాట్,...) ఫంక్షన్ని కూడా ఉపయోగించవచ్చు, కానీ మొదటి స్పేస్ మరియు లైన్ బ్రేక్ను ఎదుర్కొన్నప్పుడు అది చదవడం ఆగిపోతుంది.
జీవన ఉదాహరణ
#చేర్చండి
పై కోడ్ కంపైల్ చేయబడి మరియు అమలు చేయబడినప్పుడు, ఇది మునుపటి విభాగంలో సృష్టించబడిన ఫైల్లను చదువుతుంది, ఈ క్రింది ఫలితాలను ఉత్పత్తి చేస్తుంది:
1: ఈ 2: fprintf కోసం పరీక్షిస్తోంది...
3: ఇది fputs కోసం పరీక్షిస్తోంది...
ముందుగా, fscanf() యొక్క పద్ధతి ఇది .వెనుక ఖాళీని ఎదుర్కొంటుంది కాబట్టి ఇది మాత్రమే చదువుతుంది. రెండవది, లైన్ ముగిసే వరకు మిగిలిన భాగాన్ని చదవడానికి ఫంక్షన్టన్ fgets ()కి కాల్ చేయండి. చివరగా, రెండవ వరుసను పూర్తిగా చదవడానికి fgets ()కి కాల్ చేయండి.
బైనరీ I / O ఫంక్షన్
బైనరీ ఇన్పుట్ మరియు అవుట్పుట్ కోసం క్రింది రెండు విధులు ఉపయోగించబడతాయి:
size_t fread (శూన్యం * ptr , size_t size_of_elements , size_t number_of_elements , FILE *a_file ); size_t fwrite (const void *ptr , size_t size_of_elements , size_t number_of_elements , FILE *a_file );
రెండు విధులు నిల్వ బ్లాక్ల కోసం చదవబడతాయి మరియు వ్రాయబడతాయి-సాధారణంగా శ్రేణులు లేదా నిర్మాణాలు.
పైన C ఫైల్ రీడింగ్ మరియు రైటింగ్ HDV Phoelectron Technology Ltd. అనే సాఫ్ట్వేర్ టెక్నికల్ ఆపరేషన్కి చెందినది. మరియు నెట్వర్క్ సంబంధిత పరికరాల కోసం కంపెనీ (ఉదా: ACONU/ కమ్యూనికేషన్ONU/ తెలివైనONU/ ఫైబర్ONU, etc.) ఒక శక్తివంతమైన సాఫ్ట్వేర్ బృందాన్ని ఒకచోట చేర్చింది, ప్రతి కస్టమర్కు అవసరమైన ప్రత్యేక డిమాండ్లను అనుకూలీకరించడానికి, మా ఉత్పత్తులను మరింత తెలివిగా మరియు అధునాతనంగా ఉండనివ్వండి.