vcsa

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
VCS(4)			  Linux Programmer’s Manual		       VCS(4)



NAME
       vcs, vcsa - virtual console memory

DESCRIPTION
       /dev/vcs0  is  a character device with major number 7 and minor number
       0, usually of mode 0644 and owner root.tty.  It refers to  the  memory
       of the currently displayed virtual console terminal.

       /dev/vcs[1-63]  are  character  devices for virtual console terminals,
       they have major number 7 and minor number 1 to 63, usually  mode	 0644
       and  owner  root.tty.   /dev/vcsa[0-63]	are  the  same, but including
       attributes, and prefixed with four bytes giving the screen  dimensions
       and cursor position: lines, columns, x, y.  (x = y = 0 at the top left
       corner of the screen.)

       These replace the screendump  ioctls  of	 console(4),  so  the  system
       administrator can control access using file system permissions.

       The devices for the first eight virtual consoles may be created by:

	    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*

       No ioctl() requests are supported.

EXAMPLES
       You  may	 do  a	screendump  on vt3 by switching to vt1 and typing cat
       /dev/vcs3 >foo. Note that the output does not contain newline  charac-
       ters, so some processing may be required, like in fold -w 81 /dev/vcs3
       | lpr or (horrors) setterm -dump 3 -file /proc/self/fd/1.

       The /dev/vcsa0 device is used for Braille support.

       This program displays the character and screen  attributes  under  the
       cursor  of  the	second	virtual	 console, then changes the background
       color there:

	    #include <unistd.h>
	    #include <stdlib.h>
	    #include <stdio.h>
	    #include <fcntl.h>

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

		 fd = open(device, O_RDWR);
		 if (fd < 0) {
		      perror(device);
		      exit(1);
		 }
		 (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;
	    }


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

AUTHOR
       Andries Brouwer <aeb@cwi.nl>

HISTORY
       Introduced with version 1.1.92 of the Linux kernel.

SEE ALSO
       console(4), tty(4), ttys(4), selection(1)



Linux				  1995-02-19			       VCS(4)