C программисты текст файлын яки бинар файлны ничек ясый, ача һәм япа.
Файл, байтак серияне аңлата, текст файлмы яки икеләтә файл, C теле, югары дәрәҗәдәге функцияләргә керү мөмкинлеген генә түгел, саклагычтагы файлларны эшкәртү өчен төп (ОС) чакыруны да тәэмин итә. . Бу бүлектә документлар белән идарә итүдә мөһим чакырулар аңлатылачак.
ачык файл
Гадәттә 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 баш файлында даими билгеләнгән
C стандарт китапханәсе файлларны символлар буенча яки язу өчен төрле функцияләр белән тәэмин итә.
Файлга языгыз
Менә агымга персонажлар язу өчен иң гади функцияләр:
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 * форматы, ...) функциясен куллана аласыз, файлга тезмә яза. Түбәндәге мисалны карагыз:
Искәрмә: Сездә булган tmp каталогы барлыгына инаныгыз, һәм ул юк икән, аны башта компьютерыгызда ясарга кирәк.
/ tmp гадәттә Linux системасында вакытлыча каталог. Әгәр дә сез Windows системасында эшлисез икән, аны җирле мохиттә булган каталогка үзгәртергә кирәк, мәсәлән: C: \ tmp, D: \ tmp һ.б.
тере мисал
# кертү
Aboveгарыдагы код тупланган һәм башкарылганда, ул test.txt inthe / tmp каталогын барлыкка китерә. Ике төрле функция кулланып ике юлга яза. Киләсе бу файлны укыйк.
Файлны укыгыз
Түбәндә файлдан бер символны уку өчен иң гади функция:
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 * форматы, ...) функциясен файлдан укыр өчен куллана аласыз, ләкин ул беренче урын һәм сызык тәнәфесен очратканда укудан туктый.
тере мисал
# кертү
Aboveгарыдагы код тупланган һәм башкарылганда, алдагы бүлектә ясалган файлларны укый, түбәндәге нәтиҗәләр китерә:
1: Бу 2: fprintf өчен сынау ...
3: Бу fputs өчен сынау ...
Беренчедән, fscanf () методы моны гына укый .Бу аркасында ул буш урын белән очраша. Икенчедән, функция ахырына кадәр калган өлешне укыр өчен функция фгетларына шалтыратыгыз. Ниһаять, икенче рәтне тулысынча укыр өчен 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. компаниясенә карый, программа тәэминаты техник операциясе. Челтәр белән бәйле җиһазлар өчен компания (мәсәлән: ACОНУ/ аралашуОНУ/ акыллыОНУ/ җепселОНУ, һ.б.) көчле программа командасын җыйды, һәр клиент өчен кирәк булган эксклюзив таләпләрне көйләгез, шулай ук безнең продуктларны акыллырак һәм алдынгы булсын.