Provided by: manpages-pl_20060617-2_all bug

NAZWA

       vcs, vcsa - pamięć konsoli wirtualnej

OPIS

       /dev/vcs0  jest  urządzeniem  znakowym  o  numerze  głównym 7 i numerze
       pobocznym  0,  najczęściej  z  prawami  dostępu  0644  i   właścicielem
       root.tty.  Odnosi  się  ono  do  pamięci  obecnie  widocznego terminala
       wirtualnej konsoli.

       /dev/vcs[1-63] to urządzenia  znakowe  terminali  wirtualnych  konsoli,
       mają  numery  główne  7  i  numery  poboczne  od 1 do 63, najczęściej z
       prawami dostępu 0644 i będące własnością root.tty.  /dev/vcsa[0-63]  są
       tym samym, ale zawierają atrybuty oraz poprzedzone są czterema bajtami,
       zwracającymi rozmiary ekranu i pozycję kursora: wiersze, kolumny, x, y.
       (x = y = 0 w lewym górnym rogu ekranu).

       Zastępują  one  funkcje ioctl zrzucające zawartość ekranu z console(4),
       więc administrator systemu może  kontrolować  uprawnienia  przy  użyciu
       praw dostępu do plików.

       Urządzenia  dla  pierwszych  ośmiu  konsoli  wirtualnych można stworzyć
       poleceniami:

           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*

       Nie są wspierane żadne odwołania ioctl().

PRZYKŁAD

       Można zrobić "zrzut" z ekranu vt3, przełączając się na vt1 i pisząc cat
       /dev/vcs3  >foo.  Trzeba  zauważyć,  że  wynik nie zawiera znaków końca
       wiersza, więc może być konieczne jakieś przetwarzanie, np.  fold -w  81
       /dev/vcs3  | lpr lub (straszne)  setterm -dump 3 -file /proc/self/fd/1.

       Urządzenie /dev/vcsa0 jest wykorzystywane przy  wsparciu  dla  alfabetu
       Braille'a.

       Poniższy  program wyświetla aktualne atrybuty znaków i ekranu w miejscu
       kursora na drugiej wirtualnej konsoli, a następnie  zmienia  tam  kolor
       tła:

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

PLIKI

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

AUTOR

       Andries Brouwer <aeb@cwi.nl>

HISTORIA

       Wprowadzone wraz z wersją 1.1.92 jądra Linuksa.

ZOBACZ TAKŻE

       gpm(8), console(4), tty(4), ttyS(4)