C ப்ரோக்ராமர் எப்படி ஒரு டெக்ஸ்ட் பைல் அல்லது பைனரி கோப்பை உருவாக்குகிறார், திறக்கிறார் மற்றும் மூடுகிறார் என்பதை விவரிக்கிறது.
ஒரு கோப்பு, பைட்டுகளின் தொடர், அது ஒரு உரைக் கோப்பாக இருந்தாலும் அல்லது பைனரி கோப்பாக இருந்தாலும், C மொழி, மேல் நிலை செயல்பாடுகளுக்கான அணுகலை வழங்குவது மட்டுமல்லாமல், சேமிப்பக சாதனத்தில் கோப்புகளைச் செயலாக்குவதற்கான அடிப்படை (OS) அழைப்பையும் வழங்குகிறது. . இந்த அத்தியாயம் ஆவண மேலாண்மையில் முக்கியமான அழைப்புகளை விளக்கும்.
திறந்த கோப்பு
வழக்கமாக fopen () செயல்பாட்டைப் பயன்படுத்தி ஒரு புதிய கோப்பை உருவாக்க அல்லது ஏற்கனவே உள்ள கோப்பை திறக்க, இந்த அழைப்பு FILE வகையின் ஒரு பொருளை துவக்குகிறது, அதில் ஓட்டத்தை கட்டுப்படுத்த தேவையான அனைத்து தகவல்களும் உள்ளன. இந்த செயல்பாட்டு அழைப்பின் முன்மாதிரி இங்கே:
FILE *fopen (கான்ஸ்ட் சார் * கோப்பு பெயர், கான்ஸ்ட் சார் * பயன்முறை);
இங்கே கோப்புப்பெயர் என்பது ஒரு கோப்பைப் பெயரிடுவதற்கான ஒரு சரம், அணுகல் பயன்முறையின் மதிப்பு பின்வரும் மதிப்புகளில் ஒன்றாக இருக்கலாம்:
முறை | விளக்கம் |
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 () சரத்தை fp சுட்டிக்காட்டும் வெளியீட்டு ஸ்ட்ரீமுக்கு எழுதுகிறது. எழுதப்பட்டவை வெற்றியடைந்தால், அது எதிர்மறையான மதிப்பையும் பிழை ஏற்பட்டால் EOFஐயும் வழங்கும். நீங்கள் int fprintf செயல்பாட்டைப் பயன்படுத்தலாம் (FILE * fp, const char * format,...) கோப்பில் ஒரு சரத்தை எழுதுகிறது. பின்வரும் உதாரணத்தை முயற்சிக்கவும்:
குறிப்பு: உங்களிடம் tmp கோப்பகம் இருப்பதை உறுதி செய்து கொள்ளுங்கள், அது இல்லை என்றால், முதலில் அதை உங்கள் கணினியில் உருவாக்க வேண்டும்.
/ tmp பொதுவாக லினக்ஸ் கணினியில் ஒரு தற்காலிக அடைவு ஆகும். நீங்கள் விண்டோஸ் சிஸ்டத்தில் இயங்கினால், அதை உள்ளூர் சூழலில் இருக்கும் கோப்பகமாக மாற்ற வேண்டும், அதாவது: C: \ tmp, D: \ tmp, போன்றவை.
வாழும் உதாரணம்
#அடங்கும்
மேலே உள்ள குறியீடு தொகுக்கப்பட்டு செயல்படுத்தப்படும் போது, அது ஒரு புதிய கோப்பை test.txt inthe / tmp கோப்பகத்தை உருவாக்குகிறது. மேலும் இரண்டு வெவ்வேறு செயல்பாடுகளைப் பயன்படுத்தி இரண்டு வரிகளுக்கு எழுதுகிறது. இந்த கோப்பை அடுத்து படிப்போம்.
கோப்பைப் படியுங்கள்
ஒரு கோப்பிலிருந்து ஒரு எழுத்தைப் படிக்க பின்வரும் எளிய செயல்பாடு உள்ளது:
int fgetc (FILE * fp);
fgetc () செயல்பாடு உள்ளீட்டு கோப்பிலிருந்து ஒரு எழுத்தைப் படிக்கிறது, அதில் fp புள்ளிகள் இருக்கும். திரும்பும் மதிப்பு என்பது வாசிப்பு எழுத்து மற்றும் பிழை ஏற்பட்டால் EOF ஆகும். ஸ்ட்ரீமிலிருந்து ஒரு சரத்தைப் படிக்க பின்வரும் செயல்பாடு உங்களை அனுமதிக்கிறது:
சார் *fgets (char *buf, int n, FILE *fp);
fget () செயல்பாடு fp இயக்கிய உள்ளீட்டு ஸ்ட்ரீமில் இருந்து n-1 எழுத்துகளைப் படிக்கிறது. இது வாசிப்பு சரத்தை இடையக பஃப்பில் நகலெடுக்கிறது மற்றும் சரத்தை நிறுத்த இறுதியில் ஒரு பூஜ்ய எழுத்தைச் சேர்க்கிறது.
இந்தச் செயல்பாடு உடைந்த வரி எழுத்து '\ n' அல்லது கடைசி எழுத்தைப் படிக்கும் முன் கோப்பின் முடிவின் EOF ஐ எதிர்கொண்டால், வரி முறிவுகள் உட்பட படித்த எழுத்துகளுக்கு மட்டுமே திரும்பும். கோப்பிலிருந்து சரத்தைப் படிக்க நீங்கள் int fscanf (FILE * fp, const char * format,...) செயல்பாட்டையும் பயன்படுத்தலாம், ஆனால் முதல் இடைவெளி மற்றும் வரி இடைவெளியை எதிர்கொள்ளும்போது அது படிப்பதை நிறுத்துகிறது.
வாழும் உதாரணம்
#அடங்கும்
மேலே உள்ள குறியீடு தொகுக்கப்பட்டு செயல்படுத்தப்படும்போது, முந்தைய பிரிவில் உருவாக்கப்பட்ட கோப்புகளைப் படித்து, பின்வரும் முடிவுகளை உருவாக்குகிறது:
1: இது 2: fprintf க்காக சோதனை செய்கிறது...
3: இது fputகளுக்கான சோதனை...
முதலில், fscanf() இன் முறையானது திஸ் .ஐ மட்டுமே படிக்கிறது, ஏனெனில் இது பின்புறத்தில் ஒரு இடத்தை எதிர்கொள்கிறது. இரண்டாவதாக, வரியின் இறுதி வரை மீதமுள்ள பகுதியைப் படிக்க functon 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. என்ற மென்பொருள் தொழில்நுட்பச் செயல்பாட்டிற்குச் சொந்தமானது. நெட்வொர்க் தொடர்பான உபகரணங்களுக்கான நிறுவனம் (அதாவது: ஏசிONU/ தொடர்புONU/ புத்திசாலிONU/ நார்ச்சத்துONU, முதலியன) ஒரு சக்திவாய்ந்த மென்பொருள் குழுவை ஒன்றிணைத்துள்ளது, ஒவ்வொரு வாடிக்கையாளருக்கும் தேவைப்படும் பிரத்தியேக கோரிக்கைகளைத் தனிப்பயனாக்குகிறது, மேலும் எங்கள் தயாரிப்புகள் மிகவும் அறிவார்ந்த மற்றும் மேம்பட்டதாக இருக்கட்டும்.