ИМЯ¶
vcs, vcsa - память
виртуальной
консоли
ОПИСАНИЕ¶
/dev/vcs0 -
символьный
файл со
старшим
номером 7 и
младшим
номером 0,
обычно с
доступом 0644 и
владельцем
root.tty. Он
ссылается на
память в
настоящий
момент
отображаемого
терминала
виртуальной
консоли.
/dev/vcs[1-63] -
символьные
файлы для
терминалов
виртуальных
консолей,
они имеют
старший
номер 7 и
младший
номер от 1 до 63,
обычно имеют
доступ 0644 и
владельца root.tty.
/dev/vcsa[0-63] - такие же,
но они
содержат
атрибуты, и
дополнительные
начальные 4
байта,
содержащие
размеры
экрана и
положение
курсора:
lines,
columns,
x,
y. (
x =
y = 0 в
верхнем
левом углу
экрана.)
Они замещают
функции
ioctl
снимка
экрана для
console(4), так что
системный
администратор
может
устанавливать
доступ,
используя
права
доступа к
файлам.
Устройства
для первых
восьми
виртуальных
консолей
могут быть
созданы
командами:
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 не
поддерживаются.
ПРИМЕРЫ¶
Вы можете
получить
снимок
экрана на 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 <stdio.h>
#include <fcntl.h>
int main() {
int fd;
struct {char lines, cols, x, y;} scrn;
char ch, attrib;
fd = open("/dev/vcsa2", O_RDWR);
(void)read(fd, &scrn, 4);
(void)lseek(fd, 4 + 2*(scrn.y*scrn.cols + scrn.x), 0);
(void)read(fd, &ch, 1);
(void)read(fd, &attrib, 1);
printf("ch='%c' attrib=0x%02x\n", ch, attrib);
attrib ^= 0x10;
(void)lseek(fd, -1, 1);
(void)write(fd, &attrib, 1);
return 0;
}
ФАЙЛЫ¶
/dev/vcs[0-63]
/dev/vcsa[0-63]
АВТОР¶
Andries Brouwer <aeb@cwi.nl>
ИСТОРИЯ¶
Впервые
появилось в
версии ядра Linux
1.1.92.
СМ. ТАКЖЕ¶
console(4),
tty(4),
ttys(4),
selection(1)