Provided by: manpages-ru_4.27.0-1_all bug

НАИМЕНОВАНИЕ

       vcs, vcsa - память виртуальной консоли

ОПИСАНИЕ

       /dev/vcs0  представляет  собой символьное устройство со старшим номером 7 и младшим 0, обычно имеет права
       доступа 0644 и принадлежит root:tty.  Устройство  указывает  на  память  отображаемого  в  данный  момент
       виртуального консольного терминала.

       /dev/vcs[1-63]  представляют собой символьные устройства виртуальных консольных терминалов, имеют старший
       номер 7 и младшие от 1 до 63, обычно имеют права доступа 0644  и  принадлежат  root:tty.  /dev/vcsa[0-63]
       представляют собой  те же устройства, но имеют атрибуты в виде чисел типа unsigned short (с порядком байт
       узла)  и приставкой из четырех байтов, задающих размеры экрана и положение курсора: lines, columns, x, y.
       (x = y = 0 означает верхний левый угол экрана.)

       When a 512-character font is loaded, the 9th bit  position  can  be  fetched  by  applying  the  ioctl(2)
       VT_GETHIFONTMASK  operation  (available  since Linux 2.6.18)  on /dev/tty[1-63]; the value is returned in
       the unsigned short pointed to by the third ioctl(2)  argument.

       Эти устройства  заменяют  операции  ioctl(2)  по  снятию  снимка  экрана  ioctl_console(2),  и  позволяют
       системному администратору контролировать доступ с помощью файловой системы.

       Устройства для первых восьми виртуальных консолей могут быть созданы с помощью следующих команд:

           for x in 0 1 2 3 4 5 6 7 8; do
               mknod -m 644 /dev/vcs$x c 7 $x;
               mknod -m 644 /dev/vcsa$x c 7 $[$x+128];
           done
           chown root:tty /dev/vcs*

       Запросы ioctl(2) не поддерживаются.

ФАЙЛЫ

       /dev/vcs[0-63]
       /dev/vcsa[0-63]

ВЕРСИИ

       Introduced with Linux 1.1.92.

ПРИМЕРЫ

       Вы можете сделать снимок экрана vt3, переключившись на vt1 и написав

           cat /dev/vcs3 >foo

       Заметим,  что  вывод не будет содержать символов новой строки, поэтому может потребоваться дополнительная
       обработка, например

           fold -w 81 /dev/vcs3 | lpr

       или (жуть)

           setterm -dump 3 -file /proc/self/fd/1

       Устройство /dev/vcsa0 используется для поддержки дисплея Брайля.

       Эта программа выводит символ и атрибуты экрана, находящиеся под курсором на второй виртуальной консоли, и
       затем меняет цвет фона в том же месте.

       #include <unistd.h>
       #include <stdlib.h>
       #include <stdio.h>
       #include <fcntl.h>
       #include <sys/ioctl.h>
       #include <linux/vt.h>

       int
       main(void)
       {
           int fd;
           char *device = "/dev/vcsa2";
           char *console = "/dev/tty2";
           struct {unsigned char lines, cols, x, y;} scrn;
           unsigned short s;
           unsigned short mask;
           unsigned char attrib;
           int ch;

           fd = open(console, O_RDWR);
           if (fd < 0) {
               perror(console);
               exit(EXIT_FAILURE);
           }
           if (ioctl(fd, VT_GETHIFONTMASK, &mask) < 0) {
               perror("VT_GETHIFONTMASK");
               exit(EXIT_FAILURE);
           }
           (void) close(fd);
           fd = open(device, O_RDWR);
           if (fd < 0) {
               perror(device);
               exit(EXIT_FAILURE);
           }
           (void) read(fd, &scrn, 4);
           (void) lseek(fd, 4 + 2*(scrn.y*scrn.cols + scrn.x), SEEK_SET);
           (void) read(fd, &s, 2);
           ch = s & 0xff;
           if (s & mask)
               ch |= 0x100;
           attrib = ((s & ~mask) >> 8);
           printf("ch=%#03x attrib=%#02x\n", ch, attrib);
           s ^= 0x1000;
           (void) lseek(fd, -2, SEEK_CUR);
           (void) write(fd, &s, 2);
           exit(EXIT_SUCCESS);
       }

СМОТРИТЕ ТАКЖЕ

       ioctl_console(2), tty(4), ttyS(4), gpm(8)

ПЕРЕВОД

       Русский перевод этой страницы  руководства  разработал(и)  Azamat  Hackimov  <azamat.hackimov@gmail.com>,
       Dmitriy  Ovchinnikov  <dmitriyxt5@gmail.com>,  Dmitry Bolkhovskikh <d20052005@yandex.ru>, Katrin Kutepova
       <blackkatelv@gmail.com>, Yuri Kozlov  <yuray@komyakino.ru>,  Иван  Павлов  <pavia00@gmail.com>  и  Kirill
       Rekhov <krekhov.dev@gmail.com>

       Этот  перевод является свободной программной документацией; он распространяется на условиях общедоступной
       лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html  версии  3  или
       более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

       Если  вы  обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом
       разработчику(ам)  по  его(их)  адресу(ам)  электронной  почты  или  по   адресу   списка рассылки русских
       переводчиков.

Справочные страницы Linux 6.9.1                  15 июня 2024 г.                                          vcs(4)