Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > Консоль и ее плюшки


Автор: 500mhz 24.2.2011, 01:30
вопрос про консоль,
я знаю 3 способа работы с консолью и ее эмуляцией в Х
1) ncurses
2) esc последовательности
3) /dev/vcs* /dev/vcsa*

первые 2 какбэ одно и тоже но 1 вариант имеет "интерфейс" и базу данных по эмуляторам консоли
второй вариант может не работать если эмулятор не поддерживает esc
3 вариант требует рута (я не знаю как с ним в Х работать, пока еше не получилось)

и собственно вопрос, а сушествует ли универсальный способ который бы работал и в консоли (ctrl+alt+F*) и в Х (в эмуляции) ?


пс
как все запушено в линюхе )))

Автор: 500mhz 24.2.2011, 14:49
вопрос в догонку, как определить размер консоли?

Автор: fish9370 24.2.2011, 22:42
Код

int get_termcols(int fd)
{
         struct winsize win;
         int cols = 0;
 
         if (!isatty(fd))
                 return -1;
 
         if (ioctl(fd, TIOCGWINSZ, &win) != -1) {
                 if (!cols && win.ws_col > 0)
                         cols = (int) win.ws_col;
         } else {
                 /* assume 80 characters if the ioctl fails for some reason */
                 cols = 80;
         }
 
         return cols;
}



Код

int screenwidth = get_termcols(STDOUT_FILENO);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)