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