Provided by: manpages-ru_4.18.1-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>

       Этот  перевод  является  бесплатной  документацией;  прочитайте  Стандартную  общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если  вы  обнаружите  ошибки  в  переводе этой страницы руководства, пожалуйста, отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.