Существует ли норма или стандартная ширина для GNU-Linux/Unix-терминалов?



Я должен создать приложение, которое пишет большое количество текста в разных GNU-Linux/Unix-терминалах. Есть ли норма или стандартная ширина, на которую я мог бы сослаться? Я имею в виду, как в мире веб-дизайна, где они используют ширину 1024 пикселя как правило.



Спасибо, что уделили мне время.

591   4  

4 ответов:

Программы могут получить ширину и высоту терминала от драйвера терминала, используя системный вызов 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;
}

Традиционно ограничение в 80 символов (это означает, что строки длиной более 80 символов переносятся в следующую строку) было нормой. Тем не менее, была дискуссия о релевантности этого стандарта (см. здесь). Однако в моем Университетском опыте нас учили, что удобный просмотр в терминале - это 80 символов. Если вы используете моноширинный шрифт 12pt по умолчанию для linux, это будет означать, что хорошая ширина будет приблизительно 80 * ширина одного символа. Лучшим решением, вероятно, было бы просто отрезать каждую строку на 80 символов программно.

Tldr: 80 символов

80 cols и 24 были старым стандартом VT200, который сохранялся в течение длительного времени.

С сегодняшними графическими мониторами вы не можете придерживаться этого, но есть и другие средства. Взгляните наncurses . Это набор функций позиционирования текста на консоли, независимо от его размера и т.д. Weechat иIrssi являются известными пользователями ncurses.

Короче говоря, 80 символов.

Это был своего рода стандарт де-факто с тех пор, Ну, с тех пор, как перфокарты на самом деле.

Comments

    Ничего не найдено.