Операционная система ЗОСРВ «Нейтрино» > Руководство разработчика > Программные интерфейсы общего назначения > Прикладные библиотеки и технологии > Библиотека эмуляции терминала > API терминала > term_get_string()



term_get_string()

Считать фрагмент экрана с совпадающими атрибутами

Прототип:

#include <sys/terminal.h>
size_t term_get_string(terminal_t *term, int row, int col, uint16_t *strw, size_t max_len, terminal_attr_t *attr);

Аргументы:

term
Объект терминала.
row
Строка начала фрагмента. Отрицательные значения позволяют обратиться к истории (-1 - последняя сохранённая строка, -2 - предыдущая перед ней и т.д.).
col
Столбец начала фрагмента.
strw
Буфер, в который будет записан фрагмент.
max_len
Размер буфера для записи.
attr
Атрибут фрагмента экрана. Подробнее про поля атрибута см. terminal_attr_t. Если необходимо получить только символы и атрибут не нужен, в функцию можно передать нулевой указатель.

Библиотека:

terminal

Описание:

Данная функция позволяет получить фрагмент экрана с совпадающими атрибутами и записывает его в переданный буфер (коды символов в Юникоде). Также функция отдельно группирует отображаемые символы и пробелы и заканчивает фрагмент на конце строки.

Возвращаемое значение:

Количество символов, записанных в буфер.

Примеры:

#include <sys/terminal.h>
void cb_screen_change(terminal_t *term, unsigned row, unsigned col, unsigned n) {
uint16_t strw[40];
int count;
attr_t attr;
client_t client = (clien_t *)term_get_client(term);
while (n > 0) {
count = term_get_string(term, row, col, strw, 40, &attr);
draw_text(client, row, col, strw, attr); // функция приложения
n -= count;
row += count;
}
}

Классификация:

ЗОСРВ «Нейтрино»

Безопасность использования
Точка остановки потока
Да
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Тематические ссылки:

term_get_char(), terminal_attr_t




Предыдущий раздел: Terminal API