Diyar dike ka bernameçêkerê C çawa pelek nivîsê, an pelek binary diafirîne, vedike û digire.
Pelek, tê wateya rêzek byte, ka ew pelek nivîsê be an pelek binary be, C Language, ne tenê gihîştina fonksiyonên asta jorîn peyda dike, lê di heman demê de banga bingehîn (OS) jî peyda dike da ku pelên li ser cîhaza hilanînê hilîne. . Ev beş dê bangên girîng ên di rêveberiya belgeyê de rave bike.
vekirî-pel
Bi gelemperî fonksiyona fopen () bikar tîne da ku pelek nû biafirîne an pelek heyî veke, ev bangî tiştek ji celebê FILE ku hemî agahdariya pêwîst ji bo kontrolkirina herikê vedihewîne destnîşan dike. Li vir prototîpa vê banga fonksiyonê ye:
FILE *fopen (const char * navê pelê, const char * moda);
Li vir navê pelê rêzek e ku navê pelê bike, nirxa moda gihîştinê dikare yek ji van nirxan be:
mînak | terîf |
r | Pelek nivîsê ya heyî ya ku destûrê dide xwendinê vekin. |
w | Pelek nivîsê ku destûrê dide nivîsandina pelê veke. Heke pel tune be, pelek nû tê çêkirin. Li vir, bernameya we ji destpêka pelê ve naverokê dinivîse. Ger pel hebe, ew ê bi dirêjahiya sifir were qut kirin û ji nû ve were nivîsandin. |
a | Pelek nivîsê vekin û pelê di moda pêvekê de binivîsin. Heke pel tune be, pelek nû tê çêkirin. Li vir, bernameya we naverokê li pelên ku we berê hene zêde dike. |
r+ | Pelek nivîsê ku destûrê dide te ku hûn pelê bixwînin û binivîsin vekin. |
w+ | Pelek nivîsê ku destûrê dide te ku hûn pelê bixwînin û binivîsin vekin. Heke pel jixwe hebe, pel bi dirêjahiya sifir tê qut kirin, û heke pel tune be, pelek nû tê çêkirin. |
a+ | Pelek nivîsê ku destûrê dide te ku hûn pelê bixwînin û binivîsin vekin. Heke pel tune be, pelek nû tê çêkirin. Xwendin di destpêka pelê de dest pê dike, û nivîsandin tenê di moda pêvekirinê de ye. |
Ger pelê binaryê were pêvajo kirin, moda gihîştina jêrîn bikar bînin da ku li jor veguherînin:
"rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"
pelê girtî
Ji bo girtina pelê, ji kerema xwe fonksiyona fclose() bikar bînin. Prototîpa fonksiyonê wiha ye:
int fclose (FILE *fp);
- Ger pel bi serfirazî were girtin, fonksiyona fclose() sifir vedigere, û heke xeletî EOF vedigere. Ev fonksiyon, bi rastî, daneyan ji tamponê derdixe, pelê digire, û hemî bîranîna ku ji bo wê pelê hatî bikar anîn berdide. EOF domdar e ku di pelê sernavê stdio.h de hatî destnîşankirin
Pirtûkxaneya standard C fonksiyonên cihêreng peyda dike da ku pelan bi tîpan an wekî rêzek dirêj-rêkûpêk bixwînin û binivîsin.
Di pelê de binivîse
Li vir fonksiyonên herî hêsan ên nivîsandina karakteran li ser çemê hene:
int fputc (int c, FILE *fp);
Fonksîyona fputc () nirxa karakterê ya parametreya c di herika derketinê ya ku fp nîşan dide dinivîse. Ger nivîsandin serketî bin, ger xeletiyek çêbibe karaktera nivîskî û EOF vedigerîne. Hûn dikarin fonksiyona jêrîn bikar bînin da ku xêzek ku bi tîrêjê bi null diqede binivîsin:
int fputs (const char *s, FILE *fp);
Fonksîyona fputs () rêzika s-ê li herika derketinê ya ku fp nîşan dide dinivîse. Ger nivîsandin biserkevin, ew nirxek ne-neyînî vedigerîne û heke xeletiyek çêbibe EOF vedigerîne. Her weha hûn dikarin fonksiyona int fprintf bikar bînin (FILE * fp, const char * format,...) li pelê rêzek dinivîse. Mînaka jêrîn biceribînin:
Nîşe: Piştrast bikin ku we pelrêçek tmp heye, û heke ew tune be, divê hûn pêşî li ser komputera xwe çêbikin.
/ tmp bi gelemperî pelrêçek demkî ye li ser pergala Linux. Heke hûn li ser pergala Windows-ê dimeşînin, hûn hewce ne ku wê li pelrêçekek heyî ya li hawîrdora herêmî biguhezînin, wek: C: \ tmp, D: \ tmp, hwd.
mînaka zindî
#linavxistin
Dema ku koda jorîn tête berhev kirin û darve kirin, ew pelek nû test.txt di pelrêça / tmp de diafirîne. Û bi karanîna du fonksiyonên cuda du rêzan dinivîse. Ka em vê dosyayê paşê bixwînin.
Pelê bixwînin
Ya jêrîn fonksiyona herî hêsan e ku meriv karakterek yek ji pelê bixwîne:
int fgetc (FILE * fp);
Fonksiyona fgetc () karakterek ji pela têketinê ya ku fp nîşan dide dixwîne. Nirxa vegerê karaktera xwendinê ye û heke xeletiyek çêbibe EOF ye. Fonksiyona jêrîn destûrê dide te ku hûn rêzek ji çemek bixwînin:
char *fgets (char *buf, int n, FILE *fp);
Fonksîyona fgets () n-1 tîpan ji herika têketina ku ji hêla fp ve hatî rêve kirin dixwîne. Ew rêzika xwendinê li tampona tamponê kopî dike û li dawiyê karakterek betal pêve dike da ku rêzê biqedîne.
Ger ev fonksiyon berî xwendina karaktera paşîn bi karakterek xêzika şikestî '\ n' an EOF ya dawiya pelê re rû bi rû bimîne, wê hingê tenê vedigere karakterên xwendinê, tevî veqetandina rêzan. Her weha hûn dikarin fonksiyona int fscanf (FILE * fp, const char * format,...) bikar bînin da ku rêzika ji pelê bixwînin, lê dema ku bi cîh û rêzika yekem re rûbirû dibe ew xwendin disekine.
mînaka zindî
#linavxistin
Dema ku koda jorîn tête berhev kirin û darve kirin, ew pelên ku di beşa berê de hatine afirandin dixwîne, encamên jêrîn derdixe holê:
1: Ev 2: ji bo fprintf tê ceribandin ...
3: Ev ji bo fputs ceribandin e ...
Pêşîn, rêbaza fscanf() tenê Vê dixwîne .ji ber ku ew li paş ve rûbirûyê valahiyekê dibe. Ya duyemîn, gazî functon fgets () bikin da ku beşa mayî heya dawiya rêzê bixwînin. Di dawiyê de, gazî fgets () bikin ku rêza duyemîn bi tevahî bixwînin.
Fonksiyona I / O ya binary
Du fonksiyonên jêrîn ji bo têketin û derketina binary têne bikar anîn:
size_t fread (vala *ptr, size_t size_of_elements, size_t hejmara_elementan, FILE *a_file); size_t fwrite (const void *ptr, size_t size_of_elements, size_t number_of_elements, FILE *a_file);
Her du fonksiyon jî ji bo blokên hilanînê têne xwendin û nivîsandin - bi gelemperî rêz an avahî.
Li jor xwendin û nivîsandina pelê C girêdayî HDV Phoelectron Technology Ltd., xebatek teknîkî ya nermalavê ye. Û pargîdaniya ji bo alavên têkildarî torê (wek: ACONU/ ragihandinêONU/ aqilmendONU/ fiberONU, û hwd.) tîmek nermalava hêzdar berhev kiriye, ji bo her xerîdar daxwazên taybetî yên ku jê re hewce ne xweş bike, di heman demê de bila hilberên me jîr û pêşkeftîtir bikin.