Faylga ixtiyoriy murojaat. Quyi darajali fayllarni ixtiyoriy tartibda o`qish
mumkin. Buning uchun lseek() funksiyasidan foydalanish lozim. Bu funksiya
prototipi quyidagi ko`rinishga ega:
Long lseek (int fd, long offset, int origin);
Bu funksiya fd deskriptori bilan bog`liq fayldagi joriy pozitsiyani uchinchi
parametr (origen) orqali nuqtaga nisbatan ikkinchi parametr (offset) qadamga
ko`taradi. Boshlangich nuqta MS DOS da io.h yoki UNIX da unistd.h sarlavhali
fayllarda aniqlangan o`zgarmaslar orqali aniqlanadi:
SEEK_SET (0 qiymatga ega) fayl boshi
SEEK_CUR (1 qiymatga ega) joriy pozitsiya
SEEK_END (2 qiymatga ega) fayl oxiri
Ko`chish davomida xato kelib chiqsa, xato kodi errno global
o`zgaruvchisiga yoziladi. Faylda joriy pozitsiyani aniqlash uchun tell()
funksiyasidan foydalaniladi:
Bu funksiya prototipi :
long tell (int fd);
Joriy pozitsiyani fayl boshiga keltirish:
Lseek (fd, oh, seek_set)
Joriy pozitsiyani fayl oxiriga keltirish:
Lseek (fd, oh, seek_end)
Mustahkamlash uchun savollar.
289
1. Fprint operatorining vazifasini ayting.
2. Fread operatorining umumiy yozilishi qanday ?
3. Fseek() nimani amalga oshiradi ?
4. Faylning oxiriga ma`lumot qo`shish uchun qaysi operatordan
foydalanamiz?
5. O_creat vazifasini ayting.
6. S_IREAD qachon ishlatiladi ?
7. Read va write operatorlaridan qachon foydalanib bo`ladi ?
8. Close qachon muvaffaqiyatli bajarilgan bo`ladi ?
9. Seek_cur operatorining vazifasini ayting.
10. Lseek operatori nima uchun kerak ?
290
VI BOB. BORLAND C++ BUILDER MUHITIDA DASTURLASH
Do'stlaringiz bilan baham: |