Xii bob. Potoklar


Oqimlarni ochish va yopish


Download 116.5 Kb.
bet4/16
Sana25.06.2023
Hajmi116.5 Kb.
#1654625
1   2   3   4   5   6   7   8   9   ...   16
Bog'liq
LSB 12-BOB

Oqimlarni ochish va yopish. Oqim ochilishi uchun, oldindan kiritilgan FILE turidagi struktura bilan bog’lash lozimdir. FILE strukturasi ta’rifi stdio.h bibliotekasida joylashgan.
Bu strukturada buferga ko’rsatkich, o’qilayotgan pozisiyaga ko’rsatkich va boshqa ma’lumotlar saqlanadi.
Oqim ochilganda dasturga oqimga ko’rsatkich, ya’ni FILE strukturali turdagi ob’ektga ko’rsatkich qaytariladi. Bu ko’rsatkich quyidagicha e’lon qilinishi lozim.
FILE *
Misol uchun FILE * fp
Oqim ochish funksiyasi quyidagi ko’rinishga ega;
= fopen(,)
Misol uchun:fp = fopen(“t.txt”, “r”)
Oqim bilan bog’liq faylni quyidagi rejimlarda ochish mumkin:
“w”- Yangi fayl o’qish uchun ochiladi. Agar fayl mavjud bo’lmasa yangidan yaratiladi.
“r” - Mavjud fayl faqat o’qish uchun ochiladi.
“a” - Fayl da’vom ettirish uchun ochiladi.
“w+” - Fayl yozish va keyingi taxrirlash uchun ochiladi. Fayl ixtiyoriy joyidan o’qish yoki yozish mumkin.
“r+”- fayl ixtiyoriy joyidan o’qish yoki yozish mumkin, lekin fayl oxiriga qo’shish mumkin emas.
“a+” - Fayl ixtiyoriy joyidan o’qish va yozish uchun ochiladi. Quyidagi “w+” rejimdan farqli fayl oxiriga ma’lumot qo’shish mumkin.
Matnli rejimda oqimdan o’qilgan quyidagi simvollar CR(qiymati 13) “karetkani qaytarish” va LF( qiymati 10)- “yangi qator boshiga o’tish” bitta simvolga “\n” (qiymati LF ya’ni 10ga teng) simvolga almashtiradi.
Agar fayl matnli emas ixtiyoriy ma’lumotni saqlasa binar rejimda ochiladi. Buning uchun rejimlar belgilariga b harfi qo’shiladi, masalan “wb” yoki “r+b”. Ba’zi kompilyatorlarda matnli rejim t harfi yordamida ko’rsatiladi masalan ”rt”.
Oqim ochilganda quyidagi xatolar kelib chiqishi mumkin: ko’rsatilgan fayl mavjud emas (o’qish rejimida); disk to’la yoki yozishdan himoyalangan va hokazo. Yana shuni aytish kerakki fopen() funksiyasi bajarilganda dinamik xotira ishlatiladi. Agar xotirada joy qolmagan bo’lsa “not enough memory ” - xatosi kelib chiqadi.
Ko’rsatilgan hollarda ko’rsatkich NULL qiymatga ega bo’ladi.
Bu xatolar haqidagi ma’lumotlarni ekranga chiqarish uchun perror () funksiyasi ishlatiladi. Bu funksiya stdio.h bibliotekasida saqlanuvchi prototipi quyidagi ko’rinishga ega.:
void perror(const char * s);
Diskda ochilgan fayllarni berkitish uchun quyidagi funksiyadan foydalaniladi.
int fclose ().


Download 116.5 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   16




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling