Байланысты: Конспект лекций материал Системное программрование
СӨЖ үшін бақылау тапсырмалары 1. Синхрондау нысандары және күту функциялары
2. Ағындарды синхрондауды қолдану
Тақырып 3 Консоль қосымшаларын бағдарламалау (2 сағат)
Дәріс жоспары
1. Консольдік қосымшаның құрылымы
2. Консольмен жұмыс
3. Консольге енгізу-шығару
Консоль мәтіндік ақпаратты енгізу-шығару қолданбасы пайдаланатын интерфейс деп аталады. Пайдаланушымен деректер алмасу үшін консольді пайдаланатын қолданба консоль қолданбасы деп аталады. Консольдық қосымшалар негізінен жүйелік бағдарламалауда әртүрлі қызметтерді әзірлеу және графикалық қосымшаның жұмысында туындайтын қателерді өңдеу үшін қолданылады.
Консоль бір кіріс буферінен және бір немесе бірнеше экран буферлерінен тұрады. Кіріс буферінде енгізу оқиғалары туралы ақпарат бар. Әрбір енгізу оқиғасы жазбамен сипатталады. Барлық жазбалар кіріс буферінде сақталатын кезекке орналастырылған. Экран буфері қолданба терезесіне шығуға арналған ақпаратты қамтиды және таңбалар мен түс деректерін қамтитын екі өлшемді массив болып табылады.
Енгізу оқиғалары келесі санаттарға бөлінеді:
* пернетақтадан енгізу;
* тінтуірден енгізу;
* терезе өлшемдерін өзгерту;
* енгізу фокусын өзгерту;
* мәзірге қатысты оқиғалар
Процесс тек бір консольмен байланысты болуы мүмкін. Жаңа консоль келесі екі жолдың бірімен жасалуы мүмкін.
Бірінші әдіс-СreateProcess командасы консоль процесін жасаған кезде create_new_console жалаушасын орнату керек. Бұл жағдайда, егер консольдық процесс консольдік қосымшадан жасалса және көрсетілген жалауша орнатылмаса, онда жаңа процесс ата-аналық процестің консоліне қосылады. Екінші әдіс-AllocConsole функциясын пайдалану.
Жаңа консольді құру кезінде жүйе үш енгізу-шығару дескрипторын жасайды, олардың мәндерін GetStdHandie функциясын қолдана отырып алуға болады.
* STD_INPUT_HANDLE - стандартты енгізу тұтқасы;
* STD_OUTPUT_HANDLE - стандартты шығыс тұтқасы;
* STD_ERROR_HANDLE-стандартты қате тұтқасы.
Стандартты дескрипторлардың мәндерін SetStdHandle функциясының көмегімен орнатуға болады. Әдетте SetStdHandle функциясы стандартты енгізу-шығару ағындарын қайта бағыттау үшін қолданылады.
Жоғары деңгейлі енгізу-шығару функцияларына келесі функциялар кіреді: WriteConsole, ReadConsole, WriteFile және ReadFile. Соңғы екеуінің біріншісінен айырмашылығы-ReadFile және WriteFile функцияларындағы соңғы параметр синхронды немесе асинхронды енгізу-шығаруды көрсетеді.
СӨЖ үшін бақылау тапсырмалары
1. Терезе мен консоль буферлерімен жұмыс
2. Консольдегі оқиғалар