Программы могут получить ширину и высоту терминала от драйвера терминала, используя системный вызов ioctl()
с кодом запроса TIOCGWINSZ
.Если это не доступно, разумным будет значение по умолчанию, равное 80.
Например:
#include <sys/ioctl.h>
int get_term_width(void) {
struct winsize ws;
if (ioctl(1, TIOCGWINSZ, &ws) >= 0)
return ws.ws_col;
else
return 80;
}