E hlalosa hore na C programmer e theha, e bula, le ho koala faele ea mongolo, kapa faele ea binary.
Faele, e bolela letoto la li-byte, ebang ke faele ea mongolo kapa faele ea binary, C Language, ha e fane feela ka phihlello ea mesebetsi ea boemo bo holimo, empa hape e fana ka mohala oa motheo (OS) oa ho sebetsana le lifaele sesebelisoa sa polokelo. . Khaolo ena e tla hlalosa mehala ea bohlokoa taolong ea litokomane.
bula file
Hangata ho sebelisa fopen () ho etsa faele e ncha kapa ho bula faele e teng, pitso ena e qala ntho ea mofuta oa FILE e nang le boitsebiso bohle bo hlokahalang ho laola phallo. Mona ke mohlala oa ts'ebetso ena ea mohala:
FILE * fopen ( const char * filename , const char * mode );
Mona filename ke khoele ea ho reha faele, boleng ba mokhoa oa phihlello e ka ba e 'ngoe ea litekanyetso tse latelang:
mohlala | tlhaloso |
r | Bula faele ea mongolo e teng e lumellang hore e baloe. |
w | Bula faele ea mongolo e lumellang ho ngolla faele. Haeba faele e le sieo, ho tla etsoa faele e ncha. Mona, lenaneo la hau le ngola litaba ho tloha qalong ea faele. Haeba faele e le teng, e tla fokotsoa ho fihlela bolelele ba lefela ebe e ngoloa bocha. |
a | Bula faele ea mongolo ebe u ngolla faele ka mokhoa oa append. Haeba faele e le sieo, ho tla etsoa faele e ncha. Mona, lenaneo la hau le kenyelletsa litaba ho lifaele tseo u seng u ntse u e-na le tsona. |
r+ | Bula faele ea mongolo e u lumellang ho bala le ho ngola faele. |
w+ | Bula faele ea mongolo e u lumellang ho bala le ho ngola faele. Haeba faele e se e ntse e le teng, faele e fokotsoa ho fihlela bolelele ba zero, 'me haeba faele e le sieo, faele e ncha e etsoa. |
a+ | Bula faele ea mongolo e u lumellang ho bala le ho ngola faele. Haeba faele e le sieo, ho tla etsoa faele e ncha. Ho bala ho qala qalong ea faele, 'me ho ngola ho ka mokhoa oa append feela. |
Haeba faele ea binary e sebetsoa, sebelisa mokhoa o latelang oa phihlello ho khutlisa e kaholimo:
"rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"
faele e koetsoeng
Ho koala faele, ka kopo sebelisa ts'ebetso ea fclose(). Prototype ea ts'ebetso ke e latelang:
int fclose ( FILE * fp );
- Haeba faele e koetsoe ka katleho, mosebetsi oa fclose () o khutlisa zero, 'me haeba phoso e khutlisa EOF. Ts'ebetso ena, ha e le hantle, e tlosa data ho buffer, e koala faele, 'me e lokolla memori eohle e sebelisetsoang faele eo. EOF e hlalosoa ka linako tsohle ho file ea hlooho ea stdio.h
Laeborari e tloaelehileng ea C e fana ka mesebetsi e fapaneng ea ho bala le ho ngola lifaele ka litlhaku kapa joalo ka khoele ea bolelele bo tsitsitseng.
Ngola faeleng
Mona ke mesebetsi e bonolo ea ho ngola litlhaku ho molatsoana:
int fputc ( int c , FILE *fp );
Mosebetsi fputc () o ngola boleng ba sebopeho sa paramethara c ho molapo o hlahisoang oo fp e supang ho ona. Haeba ho ngola ho atlehile, e khutlisetsa sebopeho se ngotsoeng le EOF haeba phoso e etsahala. U ka sebelisa ts'ebetso e latelang ho ngola khoele e qetellang ka null ho molapo:
int fputs ( const char *s , FILE *fp );
Mosebetsi oa fputs () o ngola khoele s ho molatsoana oa tlhahiso moo fp e supang teng. Haeba ho ngola ho atleha, e khutlisa boleng bo seng bobe le EOF haeba phoso e etsahala. U ka sebelisa ts'ebetso ea int fprintf (FILE * fp, const char * format,...) e ngola khoele faeleng. Leka mohlala o latelang:
Tlhokomeliso: Etsa bonnete ba hore u na le tmp directory e fumanehang, 'me haeba e le sieo, u lokela ho e etsa khomphuteng ea hau pele.
/ tmp hangata ke buka ea nakoana ea sistimi ea Linux. Haeba o sebelisa sistimi ea Windows, o hloka ho e fetolela bukeng e teng sebakeng sa lehae, joalo ka: C: \ tmp, D: \ tmp, jj.
mohlala o phelang
# kenyeletsa
Ha khoutu e ka holimo e bokelloa le ho etsoa, e theha faele e ncha test.txt inthe / tmp directory. Mme o ngolla mela e mmedi a sebedisa ditshebetso tse pedi tse fapaneng. Ha re bale faele ena nakong e tlang.
Bala faele
E latelang ke mosebetsi o bonolo oa ho bala tlhaku e le 'ngoe ho tsoa faeleng:
int fgetc ( FILE * fp );
Mosebetsi oa fgetc () o bala tlhaku ho tsoa faeleng e kentsoeng eo fp e supang ho eona. Boleng ba ho khutla ke sebopeho se baloang le EOF haeba phoso e etsahala. Mosebetsi o latelang o u lumella ho bala khoele ho tsoa molapong:
char *fgets ( char *buf , int n , FILE *fp );
Mosebetsi fgets () o bala litlhaku tsa n-1 ho tsoa ho molapo o kenang o tsamaisoang ke fp. E kopitsa khoele e baloang ho buffer buf ebe e hlomathisa tlhaku e sa sebetseng qetellong ho felisa khoele.
Haeba ts'ebetso ena e kopana le mohala o robehileng '\ n' kapa EOF ea pheletso ea faele pele o bala tlhaku ea ho qetela, ebe o khutlela ho batho bao ho buuoang ka bona, ho kenyelletsa le khefutso ea mela. U ka boela ua sebelisa int fscanf (FILE * fp, const char * format,...) mosebetsi oa ho bala khoele e tsoang faeleng, empa e khaotsa ho bala ha e kopana le sebaka sa pele le ho robeha ha mela.
mohlala o phelang
# kenyeletsa
Ha khoutu e ka holimo e hlophisitsoe le ho etsoa, e bala lifaele tse entsoeng karolong e fetileng, e hlahisa liphetho tse latelang:
1: Ena ea 2: e etsa tlhahlobo ea fprintf...
3: Sena ke tlhahlobo ea fputs ...
Ntlha ea pele, mokhoa oa fscanf() o bala feela Sena .hobane e kopana le sebaka ka morao. Ea bobeli, letsetsa functon fgets () ho bala karolo e setseng ho fihlela qetellong ea mola. Qetellong, letsetsa fgets () ho bala mola oa bobeli ka ho feletseng.
Binary I / O tshebetso
Mesebetsi e 'meli e latelang e sebelisoa bakeng sa tlhahiso le tlhahiso ea binary:
boholo_t fread (boid *ptr , size_t size_of_elements , size_t number_of_elements , FILE * a_file ); size_t fwrite (consst void *ptr , size_t size_of_elements , size_t number_of_elements , FILE *a_file);
Mesebetsi ka bobeli e baloa le ho ngoloa bakeng sa li-blocks tsa polokelo-hangata li-arrays kapa mehaho.
Ka holimo hoo e ka bang C faele ea ho bala le ho ngola ke ea HDV Phoelectron Technology Ltd., software technical operation. Le k'hamphani ea lisebelisoa tse amanang le marang-rang (joalo ka: ACONU/ puisanoONU/ bohlaleONU/ fiberONU, joalo-joalo) e kopantse sehlopha se matla sa software, bakeng sa moreki e mong le e mong ho etsa litlhoko tse ikhethileng tsa ba e hlokang, hape re lumelle lihlahisoa tsa rona hore li be bohlale le ho feta.