સી પ્રોગ્રામર ટેક્સ્ટ ફાઇલ અથવા બાઈનરી ફાઇલ કેવી રીતે બનાવે છે, ખોલે છે અને બંધ કરે છે તેનું વર્ણન કરે છે.
ફાઇલ, એટલે બાઇટ્સની શ્રેણી, પછી ભલે તે ટેક્સ્ટ ફાઇલ હોય કે દ્વિસંગી ફાઇલ, C લેંગ્વેજ, માત્ર ટોચના સ્તરના કાર્યોની ઍક્સેસ પ્રદાન કરે છે, પરંતુ સ્ટોરેજ ઉપકરણ પર ફાઇલો પર પ્રક્રિયા કરવા માટે અંતર્ગત (OS) કૉલ પણ પ્રદાન કરે છે. . આ પ્રકરણ દસ્તાવેજ વ્યવસ્થાપનમાં મહત્વપૂર્ણ કોલ્સ સમજાવશે.
ઓપન-ફાઈલ
સામાન્ય રીતે નવી ફાઇલ બનાવવા અથવા હાલની ફાઇલ ખોલવા માટે fopen () ફંક્શનનો ઉપયોગ કરીને, આ કૉલ FILE પ્રકારનો ઑબ્જેક્ટ શરૂ કરે છે જેમાં પ્રવાહને નિયંત્રિત કરવા માટે તમામ જરૂરી માહિતી હોય છે. અહીં આ ફંક્શન કોલનો પ્રોટોટાઇપ છે:
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 માં વ્યાખ્યાયિત થયેલ સ્થિરાંક છે
સી સ્ટાન્ડર્ડ લાઇબ્રેરી અક્ષરો દ્વારા અથવા નિશ્ચિત-લંબાઈની સ્ટ્રિંગ તરીકે ફાઇલોને વાંચવા અને લખવા માટે વિવિધ કાર્યો પ્રદાન કરે છે.
ફાઇલ પર લખો
સ્ટ્રીમમાં અક્ષરો લખવા માટે અહીં સૌથી સરળ કાર્યો છે:
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 * format,...) ના ફંક્શનનો પણ ઉપયોગ કરી શકો છો જે ફાઇલમાં સ્ટ્રિંગ લખે છે. નીચેના ઉદાહરણનો પ્રયાસ કરો:
નોંધ: ખાતરી કરો કે તમારી પાસે ઉપલબ્ધ tmp ડિરેક્ટરી છે, અને જો તે અસ્તિત્વમાં નથી, તો તમારે પહેલા તેને તમારા કમ્પ્યુટર પર બનાવવાની જરૂર છે.
/ tmp સામાન્ય રીતે Linux સિસ્ટમ પર કામચલાઉ ડિરેક્ટરી છે. જો તમે વિન્ડોઝ સિસ્ટમ પર ચલાવો છો, તો તમારે તેને સ્થાનિક પર્યાવરણમાં અસ્તિત્વમાં રહેલી ડિરેક્ટરીમાં ફેરફાર કરવાની જરૂર છે, જેમ કે: C: \ tmp, D: \ tmp, વગેરે.
જીવંત ઉદાહરણ
# સમાવેશ થાય છે
જ્યારે ઉપરોક્ત કોડ કમ્પાઈલ અને એક્ઝિક્યુટ કરવામાં આવે છે, ત્યારે તે / tmp ડિરેક્ટરીમાં નવી ફાઈલ test.txt બનાવે છે. અને બે અલગ અલગ ફંક્શનનો ઉપયોગ કરીને બે લીટીઓ પર લખે છે. ચાલો આ ફાઈલ આગળ વાંચીએ.
ફાઈલ વાંચો
ફાઇલમાંથી એક અક્ષર વાંચવા માટે નીચેનું સૌથી સરળ કાર્ય છે:
int fgetc ( FILE * fp );
fgetc () ફંક્શન ઇનપુટ ફાઇલમાંથી એક અક્ષર વાંચે છે જેના પર fp પોઇન્ટ કરે છે. રીટર્ન વેલ્યુ એ રીડ કેરેક્ટર અને જો કોઈ ભૂલ થાય તો EOF છે. નીચેનું કાર્ય તમને સ્ટ્રીમમાંથી સ્ટ્રિંગ વાંચવાની મંજૂરી આપે છે:
char *fgets ( char *buf , int n , FILE *fp);
ફંક્શન fgets () fp દ્વારા નિર્દેશિત ઇનપુટ સ્ટ્રીમમાંથી n-1 અક્ષરો વાંચે છે. તે રીડ સ્ટ્રીંગને બફર બફમાં કોપી કરે છે અને સ્ટ્રીંગને સમાપ્ત કરવા માટે અંતે એક નલ અક્ષર જોડે છે.
જો આ ફંક્શનમાં છેલ્લું અક્ષર વાંચતા પહેલા તૂટેલા લાઇન કેરેક્ટર '\ n' અથવા ફાઈલના અંતના EOFનો સામનો થાય છે, તો પછી માત્ર વાંચેલા અક્ષરો પર જ પરત આવે છે, જેમાં લાઇન બ્રેક્સનો સમાવેશ થાય છે. તમે ફાઇલમાંથી સ્ટ્રિંગ વાંચવા માટે int fscanf (FILE * fp, const char * format,...) ફંક્શનનો પણ ઉપયોગ કરી શકો છો, પરંતુ જ્યારે પ્રથમ જગ્યા અને લાઇન બ્રેકનો સામનો કરવો પડે ત્યારે તે વાંચવાનું બંધ કરે છે.
જીવંત ઉદાહરણ
# સમાવેશ થાય છે
જ્યારે ઉપરોક્ત કોડ સંકલિત અને એક્ઝિક્યુટ કરવામાં આવે છે, ત્યારે તે પાછલા વિભાગમાં બનાવેલી ફાઇલોને વાંચે છે, નીચેના પરિણામો ઉત્પન્ન કરે છે:
1: આ 2: fprintf માટે પરીક્ષણ કરી રહ્યું છે...
3: આ fputs માટે પરીક્ષણ છે...
પ્રથમ, fscanf() ની પદ્ધતિ ફક્ત આ વાંચે છે .કારણ કે તે પાછળની જગ્યાનો સામનો કરે છે. બીજું, લાઇનના અંત સુધી બાકીના ભાગને વાંચવા માટે ફંકટન fgets () ને કૉલ કરો. છેલ્લે, બીજી પંક્તિને સંપૂર્ણપણે વાંચવા માટે fgets() ને કૉલ કરો.
બાઈનરી I/O ફંક્શન
દ્વિસંગી ઇનપુટ અને આઉટપુટ માટે નીચેના બે કાર્યોનો ઉપયોગ થાય છે:
size_t fread (void *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 ફોઇલેક્ટ્રોન ટેક્નોલોજી લિમિટેડનું છે, જે સોફ્ટવેર ટેક્નિકલ ઓપરેશન છે. અને નેટવર્ક સંબંધિત સાધનો માટેની કંપની (જેમ કે: ACઓએનયુ/ સંચારઓએનયુ/ બુદ્ધિશાળીઓએનયુ/ ફાઇબરઓએનયુ, વગેરે.) એક શક્તિશાળી સોફ્ટવેર ટીમને એકસાથે લાવી છે, દરેક ગ્રાહક માટે વિશિષ્ટ માંગણીઓને કસ્ટમાઇઝ કરો જેમને તેની જરૂર છે, તેમજ અમારા ઉત્પાદનોને વધુ બુદ્ધિશાળી અને અદ્યતન થવા દો.