Подтвердить что ты не робот

Размер терминала ncurses

Как найти ширину и высоту терминала приложения ncurses?

4b9b3361

Ответ 2

Приложения ncurses обычно обрабатывают SIGWINCH и используют ioctl с TIOCGWINSZ, чтобы получить системное представление об экранах. Это может быть переопределено переменными окружения LINES и COLUMNS (см. use_env).

Учитывая, что глобальные переменные ncurses LINES и COLS обновляются как побочный эффект, когда wgetch возвращает KEY_RESIZE (в ответ на SIGWINCH), чтобы указать размер stdscr (стандартный экран, представляющий весь терминал).

Вы можете, конечно, использовать getmaxx, getmaxy и getmaxyx, чтобы получить один или оба ограничения для x- и y-ординат окна. Только последний является стандартным (и переносимым).

Дальнейшее чтение:

Ответ 3

Как насчет использования SCR_H и SCR_W?

Ответ 4

Я использую этот код:

struct winsize size;
if (ioctl(0, TIOCGWINSZ, (char *) &size) < 0)
    printf("TIOCGWINSZ error");
printf("%d rows, %d columns\n", size.ws_row, size.ws_col);

Ответ 5

переменные COLS, LINES инициализируются размерами экрана после initscr().

Источник: NCURSES Programming HOWTO

Я не уверен, если они будут обновляться при изменении размера.