.\" -*- coding: UTF-8 -*-
.\" Copyright (c) 1995 James R. Van Zandt <jrv@vanzandt.mv.com>
.\" Sat Feb 18 09:11:07 EST 1995
.\"
.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, see
.\" <http://www.gnu.org/licenses/>.
.\" %%%LICENSE_END
.\"
.\" Modified, Sun Feb 26 15:08:05 1995, faith@cs.unc.edu
.\" 2007-12-17, Samuel Thibault <samuel.thibault@ens-lyon.org>:
.\"     document the VT_GETHIFONTMASK ioctl
.\" "
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH VCS 4 "17. Juli 2016" Linux Linux\-Programmierhandbuch
.SH BEZEICHNUNG
vcs, vcsa \- Speicher der virtuellen Konsolen
.SH BESCHREIBUNG
\fI/dev/vcs0\fP ist ein zeichenorientiertes Gerät mit der Major\-Nummer 7 und
der Minor\-Nummer 0. Das Gerät gehört üblicherweise root:tty; die
Zugriffsrechte sind auf 0644 gesetzt. Es verweist auf den Speicher der
aktuell angezeigten virtuellen Konsole.
.LP
\fI/dev/vcs[1\-63]\fP sind zeichenorientierte Geräte für virtuelle Konsolen mit
der Major\-Nummer 7 und den Minor\-Nummern 1 bis 63. \fI/dev/vcsa[0\-63]\fP sind
gleichzusetzen mit \fI/dev/vcs[0\-63]\fP, verwalten aber zusätzlich
Informationen über Bildschirmgröße (2 Byte: \fIlines\fP, \fIcolums\fP) und
Cursorposition (2 Byte: \fIx\fP, \fIy\fP; \fIx\fP = \fIy\fP = 0 = linke obere
Bildschirmecke) und speichern die Zeichen in \fIunsigned\-short\fP\-Werten (in
der Byteordnung des Rechners), die auch Attribute umfassen.

Wenn eine Schrift mit 512 Zeichen geladen wird, kann die neunte Bit\-Position
durch die Anwendung der \fBioctl\fP(2)\-Operation \fBVT_GETHIFONTMASK\fP (verfügbar
in den Linux\-Kerneln 2.6.18 und höher) auf \fI/dev/tty[1\-63]\fP bestimmt
werden; der Wert wird in dem \fIunsigned short\fP zurückgegeben, auf den das
dritte Argument von \fBioctl\fP(2) zeigt.
.PP
Diese Geräte ersetzen die »Screendump«\-\fBioctl\fP(2)\-Operationen von
\fBconsole_ioctl\fP(4), sodass der Systemadministrator die Rechte für die
einzelnen Konsolen durch das Setzen von normalen Dateisystemattributen
vergeben kann.
.PP
Die Geräte für die ersten acht virtuellen Konsolen können wie folgt erstellt
werden:

.nf
    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*
.fi

Aufrufe von \fBioctl\fP(2) werden nicht unterstützt.
.SH DATEIEN
/dev/vcs[0\-63]
.br
.\" .SH AUTHOR
.\" Andries Brouwer <aeb@cwi.nl>
/dev/vcsa[0\-63]
.SH VERSIONEN
Diese Geräte wurden in der Version 1.1.92 des Linux\-Kernels eingeführt.
.SH BEISPIEL
Sie können ein »Screendump« (Bildschirmphoto) von VT2 erstellen, indem Sie
auf VT1 wechseln und folgendes eingeben:

    cat /dev/vcs3 >foo

Beachten Sie, dass die Ausgabe kein Zeilenumbruchzeichen enthält und
Nacharbeit notwendig sein kann, wie

    fold \-w 81 /dev/vcs3 | lpr

oder (Horror)

    xetterm \-dump 3 \-file /proc/self/fd/1

Das Gerät \fI/dev/vcsa0\fP unterstützt Braille.

Das folgende Programm zeigt die Zeichen\- und Bildschirmattribute unter dem
Cursor der zweiten virtuellen Konsole an und ändert danach dort die
Hintergrundfarbe.

.nf
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <linux/vt.h>

int
main(void)
{
    int fd;
    char *Geraet = "/dev/vcsa2";
    char *Konsole = "/dev/tty2";
    struct {unsigned char Zeilen, Spalten, x, y;} Anzeige;
    unsigned short s;
    unsigned short Maske;
    unsigned char Zeichen, Attribut;

    fd = open(Konsole, O_RDWR);
    if (fd < 0) {
        perror(Konsole);
        exit(EXIT_FAILURE);
    }
    if (ioctl(fd, VT_GETHIFONTMASK, &Maske) < 0) {
        perror("VT_GETHIFONTMASK");
        exit(EXIT_FAILURE);
    }
    (void) close(fd);
    fd = open(Geraet, O_RDWR);
    if (fd < 0) {
        perror(Geraet);
        exit(EXIT_FAILURE);
    }
    (void) read(fd, &Anzeige, 4);
    (void) lseek(fd, 4 + 2*(Anzeige.y*Anzeige.Spalten + Anzeige.x),
                 0);
    (void) read(fd, &s, 2);
    Zeichen = s & 0xff;
    if (Attribut & Maske)
        Zeichen |= 0x100;
    Attribut = ((s & ~Maske) >> 8);
    printf("Zeichen=\(aq%c\(aq Attribut=0x%02x\en", Zeichen, Attribut);
    Attribut ^= 0x10;
    (void) lseek(fd, \-1, 1);
    (void) write(fd, &Attribut, 1);
    exit(EXIT_SUCCESS);
}
.fi
.SH "SIEHE AUCH"
\fBconsole_ioctl\fP(4), \fBtty\fP(4), \fBttyS\fP(4), \fBgpm\fP(8)
.SH KOLOPHON
Diese Seite ist Teil der Veröffentlichung 4.09 des Projekts
Linux\-\fIman\-pages\fP. Eine Beschreibung des Projekts, Informationen, wie
Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden
sich unter \%https://www.kernel.org/doc/man\-pages/.

.SH ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von
Christian Schmidt <c.schmidt@ius.gun.de>,
Martin Eberhard Schauer <Martin.E.Schauer@gmx.de>
und
Helge Kreutzmann <debian@helgefjell.de>
erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die
GNU General Public License Version 3 oder neuer bezüglich der
Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden,
schicken Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.