VCS(4) Linux - prirucka programatora VCS(4)
JMENO
vcs, vcsa - pamet virtualni konzoly
POPIS
/dev/vcs0 je znakove zarizeni s hlavnim cislem 7 a vedlejsim 0. Obvykle
je jeho vlastnikem root.tty a jeho pristupova prava jsou 0644. Ukazuje
na pamet prave zobrazene virtualni konzoly.
/dev/vcs[1-63] jsou znakova zarizeni pro virtualni konzoly, maji hlavni
cislo 7 a vedlejsi od 1 do 63. Obvykle je jejich vlastnikem root.tty a
jejich pristupova prava jsou 0644. /dev/vcsa[0-63] jsou stejne, vcetne
atributu a zacinaji ctyrmi bajty pocet radku, sloupcu, x, y. (x = y =
0 je v levem hornim rohu obrazovky.)
Tato znakova zarizeni nahrazuji screendump ioctl konzoly - viz
console(4), proto mohou systemovy administratori kontrolovat pristup
pouze pomoci pristupovych prav k temto specialnim souborum.
Specialni soubory pro prvnich osm virtualnich konzol mohou byt
vytvoreny takto:
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*
Zadne ioctl() pozadavky nejsou podporovany.
PRIKLADY
Budete-li chtit udelat kopii obrazovky na treti virtualni konzole,
staci se prepnout napriklad na prvni konzolu a napsat cat /dev/vcs3
>neco. Avsak pozor, vystup neobsahuje znaky noveho radku, proto je
nutne vystup nejak zpracovat, napr. pomoci fold -w 80 /dev/vcs3 | lpr
nebo pomoci "genialniho" setterm -dump 3 -file /proc/self/fd/1.
Tento program zobrazi znak a obrazovkove atributy na miste kurzoru na
druhe virtualni konzole a potom tam zmeni barvu pozadi:
#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>
void 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);
}
SOUBORY
/dev/vcs[0-63]
/dev/vcsa[0-63]
AUTOR
Andries Brouwer <aeb@cwi.nl>
HISTORIE
Objevilo se ve verzi 1.1.92 jadra.
DALSI INFORMACE
console(4), tty(4), ttys(4), selection(1)
Linux 19.unora 1997 VCS(4)