• 5.14-jadval. Kostantalar ro`yxati.
  • 5.15-jadval. MS DOS va WINDOWS rejimidagi murojaat operatorlari.
  • Fayllarni ochish va yopish




    Download 7,16 Mb.
    Pdf ko'rish
    bet172/308
    Sana30.05.2024
    Hajmi7,16 Mb.
    #257687
    1   ...   168   169   170   171   172   173   174   175   ...   308
    Bog'liq
    Информатика

    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.
    1   ...   168   169   170   171   172   173   174   175   ...   308




    Download 7,16 Mb.
    Pdf ko'rish