ncurses (new curses) — бібліотека, яка реалізує API, що дозволяє програмісту створювати текстовий інтерфейс користувача для керуванням вводом-виводом на термінал в режимі консольного застосування. Це набір інструментів для розробки інтерфейсів, подібних до графічних програмних застосунків в режимі термінала. Вона оптимізована для роботи при зміні розмірів екрану, для зменшення , яка виникає при використанні віддалених командних оболонок Unix.
Меню програми , написаної з використанням ncurses | |
Тип | |
---|---|
Розробник | GNU Project |
Перший випуск | 1993 |
Стабільний випуск | 6.3 (8 листопада, 2021 ) |
Операційна система | POSIX |
Мова програмування | C |
Ліцензія | |
Репозиторій | invisible-mirror.net/archives/ncurses/ |
Вебсайт | invisible-island.net/ncurses/ |
|
Історія
Літера N в назві ncurses походить від англійського слова new (новий). Це тому що бібліотека ncurses є безкоштовною бібліотекою, яка є послідовником (копією) бібліотеки System V Release 4.0 (SVr4) , яка в свою чергу була вдосконаленою бібліотекою на базі класичної 4.4 BSD curses, яка припинила своє існування. Стандарт XSI Curses використовувався безпосередньо і розроблювався для System V.
Використання бібліотеки ncurses
Для того, щоб зібрати свою C/C++ програму з використанням бібліотеки ncurses/curses вам необхідно підключити файл заголовку <curses.h>. Для ncurses, ви можете користуватися або <curses.h> або <ncurses.h>. На деяких системах, можна зібрати лише з підключенням заголовку <ncurses.h>.
#include <curses.h>
Для лінкування програми необхідно задати опцію компілятора -lcurses або -lncurses, у вигляді
gcc -lncurses prog.c
Ініціалізація
Перш ніж використовувати будь-які інші процедури, необхідно здійснити виклик процедури initscr().
initscr();
Якщо ваша програма буде працювати на декількох терміналах, замість неї слід викликати newterm.
Перед тим як відбудеться завершення програми потрібно визвати процедуру endwin() для відновлення параметрів терміналу.
Приклад мінімальної програми
В програмі використовується версія бібліотеки Ncurses, яка має підтримку юнікоду. Для роботи з нею треба встановити флаг компілятора -lncursesw
#include <ncursesw/curses.h> #include <locale.h> #define COLOR_BLUE_YELLOW 1 int main(int argc, char *argv[]) { setlocale(LC_ALL, ""); // Включення підтримки юнікод // Ініціалізація ncurses (зчитування конфігурації термінала) WINDOW *stdscr = initscr(); // Ініціалізація кольорового режиму і створення пари кольорів для фону і тексту start_color(); init_pair(COLOR_BLUE_YELLOW, COLOR_YELLOW, COLOR_BLUE); // Початок відображення в заданому кольоровому режимі attron(COLOR_PAIR(COLOR_BLUE_YELLOW)); //COLOR_YELLOW фактично є коричневим. Для того щоб отримати жовтий, використовують COLOR_YELLOW //в поєднанні з атрибутом A_BOLD. attron(A_BOLD); printw("Текст має вивестись жовтим кольором на синьому фоні!\n"); attroff(A_BOLD); // Вивести текст без налаштування кольору attroff(COLOR_PAIR(1)); printw("Натисніть будь-яку клавішу для виходу\n"); // Оновлення екрану refresh(); // Очікування натиснення клавіші перед завершенням програми getch(); // Відновлення початкового налаштування терміналу endwin(); }
Посилання
- Офіційна домашня сторінка [ 11 квітня 2011 у Wayback Machine.]
- Ncurses Programming Guide [ 10 лютого 2015 у Wayback Machine.] від X. Li
- NCURSES — Frequently Asked Questions (FAQ) [ 21 серпня 2018 у Wayback Machine.] від Thomas Dickey
Примітки
- . Архів оригіналу за 2 серпня 2013. Процитовано 9 липня 2013.
- Eric S. Raymond (September 1995). ncurses: Portable Screen-Handling for Linux. Linux Journal. Архів оригіналу за 26 лютого 2012. Процитовано 29 січня 2015.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
ncurses new curses biblioteka yaka realizuye API sho dozvolyaye programistu stvoryuvati tekstovij interfejs koristuvacha dlya keruvannyam vvodom vivodom na terminal v rezhimi konsolnogo zastosuvannya Ce nabir instrumentiv dlya rozrobki interfejsiv podibnih do grafichnih programnih zastosunkiv v rezhimi terminala Vona optimizovana dlya roboti pri zmini rozmiriv ekranu dlya zmenshennya yaka vinikaye pri vikoristanni viddalenih komandnih obolonok Unix ncursesMenyu programi napisanoyi z vikoristannyam ncursesTipRozrobnikGNU ProjectPershij vipusk1993 31 rokiv tomu 1993 Stabilnij vipusk6 3 8 listopada 2021 2 roki tomu 2021 11 08 Operacijna sistemaPOSIXMova programuvannyaCLicenziyaRepozitorijinvisible mirror net archives ncurses Vebsajtinvisible island net ncurses Mediafajli u VikishovishiIstoriyaLitera N v nazvi ncurses pohodit vid anglijskogo slova new novij Ce tomu sho biblioteka ncurses ye bezkoshtovnoyu bibliotekoyu yaka ye poslidovnikom kopiyeyu biblioteki System V Release 4 0 SVr4 yaka v svoyu chergu bula vdoskonalenoyu bibliotekoyu na bazi klasichnoyi 4 4 BSD curses yaka pripinila svoye isnuvannya Standart XSI Curses vikoristovuvavsya bezposeredno i rozroblyuvavsya dlya System V Vikoristannya biblioteki ncursesDlya togo shob zibrati svoyu C C programu z vikoristannyam biblioteki ncurses curses vam neobhidno pidklyuchiti fajl zagolovku lt curses h gt Dlya ncurses vi mozhete koristuvatisya abo lt curses h gt abo lt ncurses h gt Na deyakih sistemah mozhna zibrati lishe z pidklyuchennyam zagolovku lt ncurses h gt include lt curses h gt Dlya linkuvannya programi neobhidno zadati opciyu kompilyatora lcurses abo lncurses u viglyadi gcc lncurses prog c Inicializaciya Persh nizh vikoristovuvati bud yaki inshi proceduri neobhidno zdijsniti viklik proceduri initscr initscr Yaksho vasha programa bude pracyuvati na dekilkoh terminalah zamist neyi slid viklikati newterm Pered tim yak vidbudetsya zavershennya programi potribno vizvati proceduru endwin dlya vidnovlennya parametriv terminalu Priklad minimalnoyi programi V programi vikoristovuyetsya versiya biblioteki Ncurses yaka maye pidtrimku yunikodu Dlya roboti z neyu treba vstanoviti flag kompilyatora lncursesw include lt ncursesw curses h gt include lt locale h gt define COLOR BLUE YELLOW 1 int main int argc char argv setlocale LC ALL Vklyuchennya pidtrimki yunikod Inicializaciya ncurses zchituvannya konfiguraciyi terminala WINDOW stdscr initscr Inicializaciya kolorovogo rezhimu i stvorennya pari koloriv dlya fonu i tekstu start color init pair COLOR BLUE YELLOW COLOR YELLOW COLOR BLUE Pochatok vidobrazhennya v zadanomu kolorovomu rezhimi attron COLOR PAIR COLOR BLUE YELLOW COLOR YELLOW faktichno ye korichnevim Dlya togo shob otrimati zhovtij vikoristovuyut COLOR YELLOW v poyednanni z atributom A BOLD attron A BOLD printw Tekst maye vivestis zhovtim kolorom na sinomu foni n attroff A BOLD Vivesti tekst bez nalashtuvannya koloru attroff COLOR PAIR 1 printw Natisnit bud yaku klavishu dlya vihodu n Onovlennya ekranu refresh Ochikuvannya natisnennya klavishi pered zavershennyam programi getch Vidnovlennya pochatkovogo nalashtuvannya terminalu endwin PosilannyaOficijna domashnya storinka 11 kvitnya 2011 u Wayback Machine Ncurses Programming Guide 10 lyutogo 2015 u Wayback Machine vid X Li NCURSES Frequently Asked Questions FAQ 21 serpnya 2018 u Wayback Machine vid Thomas DickeyPrimitki Arhiv originalu za 2 serpnya 2013 Procitovano 9 lipnya 2013 Eric S Raymond September 1995 ncurses Portable Screen Handling for Linux Linux Journal Arhiv originalu za 26 lyutogo 2012 Procitovano 29 sichnya 2015