Информатика
Fayllarni ochish va yopish
Download 7.16 Mb. Pdf ko'rish
|
informatika Mominov
- Bu sahifa navigatsiya:
- 5.14-jadval. Kostantalar ro`yxati.
- 5.15-jadval. MS DOS va WINDOWS rejimidagi murojaat operatorlari.
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 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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling