Pluto Free Software Users Group Pluto Free Software Users Group
VCS(4) manual page Table of Contents

Nome

vcs, vcsa - memoria delle console virtuali

Descrizione

/dev/vcs0 è un dispositivo a caratteri con major number 7 e minor number 0, di solito con modo 0644 e proprietario root.tty. Tale dispositivo fa riferimento alla memoria del terminale della console virtuale attualmente visulizzata sullo schermo.

/dev/vcs[1-63] sono i dispositivi a caratteri per i terminali delle console virtuali, hanno major number 7 e minor number da 1 a 63, di solito con modo 0644 e proprietario root.tty. /dev/vcsa[0-63] sono la stessa cosa, ma comprendono gli attributi e sono hanno 4 byte di prefisso per specificatre le dimensioni dello schermo e la posizione del cursore: righe , colonne , x , y . (x = y = 0 nell'angolo in alto a sinistra della schermo.)

Questi dispositivi rimpiazzano le ioctl di screendump di console (4) , cosicché l'amministratore del sistema può controllare gli accessi a tale informazione usando i permessi del file system.

I device per le prime otto console virtuali possono essere creati con:

   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*

Non è supportata alcuna richiesta ioctl() .

Esempi

Si può fare uno screendump sulla vt3 passando a vt1 e scrivendo cat /dev/vcs3 >foo . Si noti che l'output non contiene caratteri di newline, cosicché può essere necessario un po' di processing, come in fold -w 81 /dev/vcs3 | lpr o (orrore) setterm -dump 3 -file /proc/self/fd/1 .

Questo programma mostra il carattere e gli attributi dello schermo sotto il cursore della seconda console virtuale, poi cambia il colore di sfondo:

   #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);
   }

File

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

Autore

Andries Brouwer <aeb@cwi.nl>

Storia

Introdotto con la versione 1.1.92 del kernel di Linux.

Vedere Anche

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


Table of Contents

HOWTO
Guide LDP
Italian HOWTO
AppuntiLinux
LDR
Pagine man
      man1
      man2
      man3
      man4
      man5
      man6
      man7
      man8
FAQ di icl
Gnome
Altri documenti
Mirror ildp
Meeting
Pluto Journal
Mailing List
Disclaimer
Area ftp
Cerca
Pluto home

Copyright © 2001 Pluto Free Software Users Group
pluto@pluto.linux.it

Valid HTML 4.01!

webmaster @ pluto.linux.it
Il Pluto ringrazia i suoi sponsor.