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, Інтернет