Информатика


Fayllarni ochish va yopish


Download 7.16 Mb.
Pdf ko'rish
bet167/300
Sana25.08.2023
Hajmi7.16 Mb.
#1670002
1   ...   163   164   165   166   167   168   169   170   ...   300
Bog'liq
informatika Mominov

Fayllarni ochish va yopish. Fayllarni quyi darajada ochish uchun open () 
funksiyasidan foydalaniladi:
int fd= open (fayl nomi, bayroqlar, murojaat.) 
fd – fayl deskriptori, 
fayl nomi – simvollar massiviga ko`rsatkichdir. 
2- parametr bayroqlar fayl ochish rejimini belgilovchi ifodadir. Bu ifoda fcntl.h 
sarlavhali faylda saqlanuvchi o`zgarmaslardan biri yoki shu kostantalardan 
razryadli `|` amali yordamida hosil qilingan bo`lishi mumkin. 
5.14-jadval. Kostantalar ro`yxati. 
nomi 
Vazifasi 
O_APPEND Faylni oxiriga yozuv qo`shish uchun ochish; 
O_BINARY Faylni bitli (ikkili)binar rejimda ochish 
O_CREAT 
Yangi fayl yaratish va ochish 
O_EXCL 
Agar O_CREAT bilan birga ko`rsatilgan bo`lsa va yaratilmoqchi 
bo`lgan fayl mavjud bo`lsa, faylni ochish funksiyasi xatolik bilan 
tugaydi. Mavjud faylni o`chib ketmaslikdan saqlaydi. 
O_RDONLY Faylni faqat o`qish uchun ochish 
O_RDWR 
Faylni o`qish va yozish uchun ochish 
O_TEXT 
Faylni matnli rejimda ochish 
O_TRUNK 
Mavjud faylni ochish va bor ma`lumotni o`chirish 
Fayl ochilish rejimi albatta ko`rsatilgan bo`lishi shart. 3- parametr murojaat 
huquqlari faqat faylni O_CREAT ochish rejimida ya`ni yangi fayl yaratishda 
foydalaniladi. MS DOS va MS WINDOWS operatsion tizimlarida murojaat 
huquqlari parametrlarini berish uchun quyidagi o`zgarmaslardan foydalaniladi.
5.15-jadval. MS DOS va WINDOWS rejimidagi murojaat operatorlari. 


285 
nomi 
Vazifasi 
S_IWRITE 
Faylga yozishga ro`xsat berish 
S_IREAD 
Fayldan o`qishga ro`xsat berish 
S_ IREAD\ S_WRITE 
O`qish va yozishga ro`xsat berish 
Ko`rsatilgan o`zgarmaslar sys katalogida joylashgan stat.h sarlavhali faylda 
saqlanadi. Bu faylni qo`shish # include direktivasi orqali amalga 
oshiriladi. Agar murojaat huquqi parametri ko`rsatilmagan bo`lsa, faqat fayldan 
o`qishga ro`xsat beriladi.
Agar biror murojaat huquqi berilmagan bo`lsa o`rniga `_` belgisi qo`yiladi. 
Agar fayl egasiga hamma huquqlar, foydalanuvchi guruhi a`zolariga o`qish va 
bajarish, boshqa foydalanuvchilarga faqat bajarish huquqi berilgan bo`lsa, 
murojaat qatorini quyidagicha yozish mumkin rwxr-x—x. Har bir `_` simvol 
o`rniga 0 raqami, aks holda 1 raqami qo`yilib hosil bo`lgan sondagi o`ng tomondan 
boshlab har bir uch raqamini sakkizlik son sifatida yozilsa, murojaat huquqini 
belgilovchi sakkizlik butun son hosil bo`ladi. Yuqorida hosil qilingan rwxr-x—x 
qatori ikkilik 111101001 nihoyat sakkizlik 0751 son shaklida yozilib open ( ) 
funksiyasida murojaat huquqi parametri sifatida ko`rsatiladi. Faylni ochishga 
misollar: 
faylni o`qish uchun ochish: 
fd=open ( “ t.txt “ , O_RONLY) 
faylni o`qish va yozish uchun ochish: 
fd = open(“ t.txt “ , O_RDWR) 
faylni yangi ma`lumotlar yozish uchun ochish: 
fd = open(“ new.txt “ ,O_WRONLY_ |O-Creat| O_TRUNK, 0600) 
Sakkizlik o`zgarmas 0600 shaklida berilgan murojaat huquqi parametrining 
simvolli ko`nishi rw bo`lib, fayl egasiga o`qish va yozish huquqi, qolgan 
foydalanuvchilarga hech qanday huquq berilmaganligini bildiradi . Faylni ochishda 
kelib chiqadigan xato turini aniqlash uchun errno.h sarlavhali faylda saqlanuvchi 
errno o`zgaruvchisi xizmat qiladi. Agar bu o`zgaruvchi qiymati shu sarlavhali 


286 
faylda saqlanuvchi EEXIST o`zgarmasiga teng bo`lsa, ochilayotgan fayl 
mavjudligini bildiradi.
open() funksiyasi bitta faylga bir necha dasturlardan murojaat qilish 
imkonini beradi. Albatta dasturlar faylga faqat o`qish rejimida murojaat qilishi 
mumkin. Faylni ochish uchun yana Creat() funksiyasi mavjud bo`lib quyidagi 
open() funksiyasini chaqirishga mos keladi. 
Open ( fayl nomi, O_creat |O_TRUNK| O_WRONLY); 
Bu funksiya yangi fayl yaratadi va yozish uchun ochadi. Quyi darajada 
fayllarni yopish uchun close () funksiyasidan foydalanish lozim. Bu funksiya 
ko`rinishi quyidagichadir: 
Int close (fayl deskriptori); 
Funksiya muvoffaqiyatli bajarilganda 0 qaytaradi. Xato bo`lganda – 1. 

Download 7.16 Mb.

Do'stlaringiz bilan baham:
1   ...   163   164   165   166   167   168   169   170   ...   300




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