Kirjeldab, kuidas C-programmeerija loob, avab ja sulgeb teksti- või binaarfaili.
Fail tähendab baitide seeriat, olgu see siis teksti- või binaarfail, C Language mitte ainult ei paku juurdepääsu tipptaseme funktsioonidele, vaid pakub ka aluseks olevat (OS) kõnet salvestusseadme failide töötlemiseks . See peatükk selgitab olulisi üleskutseid dokumendihalduses.
avatud fail
Tavaliselt kasutades uue faili loomiseks või olemasoleva faili avamiseks funktsiooni fopen (), lähtestab see kõne objekti tüüpi FILE, mis sisaldab kogu voo juhtimiseks vajalikku teavet. Siin on selle funktsioonikutse prototüüp:
FAIL *fopen ( const char * failinimi , const char * režiim );
Siin on failinimi string failile nime andmiseks, juurdepääsurežiimi väärtus võib olla üks järgmistest väärtustest:
muster | kirjeldus |
r | Avage olemasolev tekstifail, mis võimaldab seda lugeda. |
w | Avage tekstifail, mis võimaldab faili kirjutada. Kui faili pole olemas, luuakse uus fail. Siin kirjutab teie programm sisu faili algusest peale. Kui fail on olemas, kärbitakse see nulli pikkuseks ja kirjutatakse uuesti. |
a | Avage tekstifail ja kirjutage faili lisamisrežiimis. Kui faili pole olemas, luuakse uus fail. Siin lisab teie programm sisu juba olemasolevatele failidele. |
r+ | Avage tekstifail, mis võimaldab teil faili lugeda ja kirjutada. |
w+ | Avage tekstifail, mis võimaldab teil faili lugeda ja kirjutada. Kui fail on juba olemas, kärbitakse faili pikkuseks null ja kui faili pole olemas, luuakse uus fail. |
a+ | Avage tekstifail, mis võimaldab teil faili lugeda ja kirjutada. Kui faili pole olemas, luuakse uus fail. Lugemine algab faili algusest ja kirjutamine toimub ainult lisamisrežiimis. |
Kui töödeldud binaarfaili, kasutage ülalnimetatud asendamiseks järgmist juurdepääsurežiimi:
"rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"
suletud fail
Faili sulgemiseks kasutage funktsiooni fclose(). Funktsiooni prototüüp on järgmine:
int fclose ( FAIL *fp );
- Kui fail suletakse edukalt, tagastab funktsioon fclose() nulli ja vea korral EOF. See funktsioon tegelikult eemaldab andmed puhvrist, sulgeb faili ja vabastab kogu selle faili jaoks kasutatud mälu. EOF on päisefailis stdio.h määratletud konstant
C-standarditeek pakub erinevaid funktsioone failide lugemiseks ja kirjutamiseks märkide järgi või fikseeritud pikkusega stringina.
Kirjutage faili
Siin on lihtsaimad funktsioonid märkide kirjutamiseks voogu:
int fputc ( int c , FAIL *fp );
Funktsioon fputc () kirjutab parameetri c märgiväärtuse väljundvoogu, millele fp osutab. Kui kirjutamine õnnestub, tagastab see vea ilmnemisel kirjutatud märgi ja EOF-i. Nulliga lõppeva stringi kirjutamiseks voogu saate kasutada järgmist funktsiooni:
int fputs ( const char *s , FILE *fp );
Funktsioon fputs () kirjutab stringi s väljundvoogu, kuhu fp osutab. Kui kirjutamine õnnestub, tagastab see mittenegatiivse väärtuse ja vea ilmnemisel EOF-i. Võite kasutada ka funktsiooni int fprintf (FILE * fp, const char * formaat,...) kirjutab faili stringi. Proovige järgmist näidet.
Märkus. Veenduge, et teil on saadaval tmp-kataloog ja kui seda pole, peate selle esmalt oma arvutis looma.
/ tmp on tavaliselt Linuxi süsteemi ajutine kataloog. Kui kasutate Windowsi süsteemi, peate selle muutma kohalikus keskkonnas olemasolevaks kataloogiks, näiteks: C: \ tmp, D: \ tmp jne.
elav eeskuju
#kaasa
Kui ülaltoodud kood on kompileeritud ja käivitatud, loob see kataloogi / tmp uue faili test.txt. Ja kirjutab kahele reale, kasutades kahte erinevat funktsiooni. Järgmisena loeme seda faili.
Lugege faili
Järgmine on lihtsaim funktsioon ühe märgi failist lugemiseks:
int fgetc (FAIL * fp );
Funktsioon fgetc () loeb sisendfailist märgi, millele fp osutab. Tagastusväärtus on lugemise märk ja vea ilmnemisel EOF. Järgmine funktsioon võimaldab teil stringi voost lugeda:
char *fgets ( char *buf , int n , FAIL *fp );
Funktsioon fgets () loeb fp juhitud sisendvoost n-1 märki. See kopeerib lugemisstringi puhvri puhvrisse ja lisab stringi lõpetamiseks selle lõppu nullmärgi.
Kui see funktsioon leiab enne viimase märgi lugemist katkendrea märgi '\ n' või faili lõpu EOF-i, naaseb see ainult loetud märkide juurde, sealhulgas reavahed. Stringi lugemiseks failist saate kasutada ka funktsiooni int fscanf (FILE * fp, const char * formaat,...), kuid see lõpetab lugemise, kui ilmneb esimene tühik ja reavahetus.
elav eeskuju
#kaasa
Kui ülaltoodud kood on kompileeritud ja käivitatud, loeb see eelmises jaotises loodud faile, andes järgmised tulemused:
1: See 2: testib fprintf...
3: see testib fputsi...
Esiteks, meetod fscanf() loeb ainult This ., kuna selle taga on tühik. Teiseks helistage functon fgets (), et lugeda ülejäänud osa kuni rea lõpuni. Lõpuks helistage fgets () teise rea täielikuks lugemiseks.
Binaarne I / O funktsioon
Binaarse sisendi ja väljundi jaoks kasutatakse kahte järgmist funktsiooni:
suurus_t fread (kehtetu *ptr , suurus_t elementide_suurus , suurus_t elementide_arv , FAIL *a_fail ); suurus_t fwrite (const void *ptr , suurus_t elementide_suurus , suurus_t elementide_arv , FAIL *a_fail );
Mõlemad funktsioonid loetakse ja kirjutatakse salvestusplokkide jaoks - tavaliselt massiivide või struktuuride jaoks.
Ülaltoodud umbes C-failide lugemine ja kirjutamine kuulub HDV Phoelectron Technology Ltd.-le, mis on tarkvara tehniline operatsioon. Ja võrguga seotud seadmete ettevõte (nt: ACONU/ suhtlemineONU/ intelligentneONU/ kiudaineidONUjne) on kokku toonud võimsa tarkvarameeskonna, et kohandada iga kliendi jaoks eksklusiivseid nõudmisi, kes seda vajavad, samuti muuta meie tooted intelligentsemaks ja täiustatud.