2. O‘qish-yozish oqimlari. Standart oqimlar. Oqim tushunchasi berilganlarni faylga o‘qish-yozishda ularni belgilar ketma-ketligi yoki oqimi ko‘rinishida tasavvur qilishdan kelib chiqqan. Oqim ustida quyidagi amallarni bajarish mumkin:
oqimdan berilganlar blokini operativ xotiraga o‘qish;
operativ xotiradagi berilganlar blokini oqimga chiqarish;
oqimdagi berilganlar blokini yangilash;
oqimdan yozuvni o‘qish;
oqimga yozuvni chiqarish.
Oqim bilan ishlaydigan barcha funksiyalar buferli, format-lashgan yoki formatlashmagan o‘qish-yozishni ta’minlaydi.
Programma ishga tushganda o‘qish-yozishning quyidagi standart oqimlar ochiladi:
stdin - o‘qishning standart vositasi;
stdout - yozishning standart vositasi;
stderr - xatolik haqida xabar berishning standart vositasi;
stdprn - qog‘ozga chop qilishning standart vositasi;
stdaux - standart yordamchi qurilma.
Kelishuv bo‘yicha stdin - foydalanuvchi klaviaturasi, stdout va stderr - terminal (ekran), stdprn - printer bilan, hamda stdaux - kompьyuter yordamchi portlariga bog‘langan hisoblanadi. Berilgan-larni o‘qish-yozishda stderr va stdaux oqimidan boshqa oqimlar bufer-lanadi, ya’ni belgilar ketma-ketligi operativ xotiraning bufer deb nomlanuvchi sohasida vaqtincha jamlanadi. Masalan, belgilarni tashqi qurilmaga chiqarishda belgilar ketma-ketligi buferda jamlanadi va bufer to‘lgandan keyingina tashqi qurilmaga chiqariladi.
Hozirdagi operatsion sistemalarda klaviatura va displeylar matn fayllari sifatida qaraladi. Haqiqatdan ham berilganlarni klaviaturadan programmaga kiritish (o‘qish) mumkin, ekranga esa chiqarish (yozish) mumkin. Programma ishga tushganda standart o‘qish va yozish oqimlari o‘rniga matn fayllarni tayinlash orqali bu oqim-larni qayta aniqlash mumkin. Bu holatni o‘qishni (yozishni) qayta adreslashro‘y berdi deyiladi. O‘qish uchun qayta adreslashda ‘<’ belgisidan, yozish uchun esa ‘>’ belgisidan foydalaniladi. Misol uchun gauss.exe bajariluvchi programma berilganlarni o‘qishni klaviaturadan emas, balki massiv.txt faylidan amalga oshirish zarur bo‘lsa, u buyruq satrida quyidagi ko‘rinishda yuklanishi zarur bo‘ladi:
gauss.exe < massiv.txt
Agar programma natijasini natija.txt fayliga chiqarish zarur bo‘lsa
gauss.exe > natija.txt
satri yoziladi.
Va nihoyat, agar berilganlarni massiv.txt faylidan o‘qish va natijani natija.txt fayliga yozish uchun
gauss.exe < massiv.txt > natija.txt
buyruq satri teriladi.
Umuman olganda, bir programmaning chiqish oqimini ikkinchi programmaning kirish oqimi bilan bog‘lash mumkin. Buni konveyrli jo‘natish deyiladi. Agar ikkita junat.exe programmasi qabul.exe programmasiga berilganlarni jo‘natishi kerak bo‘lsa, u holda ular o‘rtasiga ‘|’ belgi qo‘yib yoziladi:
junat.exe | qabul.exe
Bu ko‘rinishdagi programmalar o‘rtasidagi konveyrli jo‘na-tishni operatsion sistemaning o‘zi ta’minlaydi.
Do'stlaringiz bilan baham: |