vcs

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)

Personal Tools