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.