vcs, vcsa − Virtueller Speicher für die Bildschirmausgabe
/dev/vcs0 ist ein zeichenorientiertes Device mit der major Nummer 7 und der minor Nummer 0 . Das Device gehört üblicherweise root.tty und besitzt die Zugriffsrechte 0644.
Es verweist auf den Speicher der aktuell benutzten virtuellen Konsole.
/dev/vcs[1-63] sind die “character” (zeichenorientierten) Devices für die virtuellen Konsolen und benutzen ebenfalls die major Nummer 7 und die minor Nummer’n 1-63.
/dev/vcsa[0-63] sind gleichzusetzen mit /dev/vcs[0-63], besitzen aber eigene Attribute und sind durch 4 Byte für die Bildschirmgröße und Cursorposition vorgezeichnet. lines, columns, x, y. (x = y = 0 = Links, Oben auf dem Bildschirm.)
Diese Ersetzen die “Screendump” ioctls der console(4), so dass der Systemadministrator die Rechte für die einzelnen Konsolen durch das Setzen von normalen Dateisystem Attributen vergeben kann.
Die Devices werden wie üblich mit dem Programm mknod eingerichtet:
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* |
ioctl() Aufrufe werden nicht unterstützt..
Um z.B. einen “Screendump” von vt3 zu erzeugen, wechselt man von vt3 auf vt1 und gibt Folgendes ein:
cat /dev/vcs3 >foo.
Das folgende Programm zeigt die Zeichen- und Bildschirm Attribute unter dem Cursor der zweiten virtuellen Konsole und andert danach die Bildschirmfarbe derselben.
#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); |
|||
} |
/dev/vcs[0-63]
/dev/vcsa[0-63]
1995 Andries Brouwer <aeb AT cwi DOT nl>
Copyright © 1995 James R. Van Zandt <jrv AT vanzandt DOT mv DOT com>
Copyright © 1996 Christian Schmidt <c DOT schmidt AT ius DOT gun DOT de>
deutsche Version
Dieses Manual darf sowohl in der Original, als auch in der deutschen Version mit folgender Einschränkung benutzt, Vervielfältigt und Vertrieben werden. Dieser Copyright-Abschnitt und der “Header” muss unverändert in allen Kopien beibehalten werden. Ferner sind die zusätzlichen Vereinbarungen im “Header” dieses Manuals zu beachten.
Eingeführt ab der Version 1.1.92 des Linux Kernels.