vcs   Début   Suivant   Sommaire   Préc.page.lue   Accueil
Section: Manuel du programmeur Linux (4)
Updated: 17 décembre 2007
Sommaire  



NOM   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
vcs, vcsa - Mémoires des consoles virtuelles  



DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
/dev/vcs0 est un périphérique caractères de numéro majeur 7 et de numéro mineur 0, avec les permissions 0644 et un propriétaire root.tty. Il correspond à la mémoire d'affichage de la console virtuelle en cours d'utilisation.

/dev/vcs[1-63]sont des périphériques caractères représentant la mémoire d'affichage des consoles virtuelles. Ils ont un numéro majeur 7 et des numéros mineurs 1 à 63. Ils ont généralement un mode d'accès 0644 et un propriétaire root.tty. Les /dev/vcsa[0-63] sont équivalents mais utilisent des unsigned short (dans l'ordre des octets de l'hôte) qui incluent les attributs, et sont préfixés avec 4 octets indiquant les dimensions de l'écran et la position du curseur : lines, columns, x, y. (x = y = 0 en haut à gauche de l'écran.)

Lorsque qu'une police à 512 caractères est chargée, la position du 9èmè bit peut être extraire en appliquant l'opération VT_GETHIFONTMASK de ioctl(2) (disponible dans les noyaux Linux 2.6.18 et suivants) sur /dev/tty[1-63]; la valeur est renvoyée dans le unsigned short pointé par le troisième argument de ioctl(2).

Ceci remplace les ioctls « screendump » de console(4), ainsi l'administrateur peut contrôler les accès en utilisant les permissions du système de fichiers.

Les périphériques pour les 8 premières consoles virtuelles peuvent être créés ainsi :

    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*

Aucune requête ioctl(2) n'est supportée.  




FICHIERS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
/dev/vcs[0-63]
/dev/vcsa[0-63]  



VERSIONS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
Introduits dans la version 1.1.92 du noyau Linux.  



EXEMPLE   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
On peut faire un screendump de la console vt3 en basculant sur vt1 et en tapant cat /dev/vcs3 >foo. Notez que la sortie ne contient pas de caractères de retour-chariot, aussi quelques manipulations peuvent être nécessaires comme fold -w 81 /dev/vcs3 | lpr ou (horrible !) setterm -dump 3 -file /proc/self/fd/1.

Ce programme affiche le caractère et l'attribut d'écran sous le curseur de la seconde console virtuelle, puis y change la couleur de fond :

#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 *device = "/dev/vcsa2";
    char *console = "/dev/tty2";
    struct {unsigned char lines, cols, x, y;} scrn;
    unsigned short s;
    unsigned short mask;
    unsigned char ch, attrib;

    fd = open(console, O_RDWR);
    if (fd < 0) {
        perror(console);
        exit(EXIT_FAILURE);
    }
    if (ioctl(fd, VT_GETHIFONTMASK, &mask) < 0) {
        perror("VT_GETHIFONTMASK");
        exit(EXIT_FAILURE);
    }
    (void) close(fd);
    fd = open(device, O_RDWR);
    if (fd < 0) {
        perror(device);
        exit(EXIT_FAILURE);
    }
    (void) read(fd, &scrn, 4);
    (void) lseek(fd, 4 + 2*(scrn.y*scrn.cols + scrn.x), 0);
    (void) read(fd, &s, 2);
    ch = s & 0xff;
    if (attrib & mask)
        ch |= 0x100;
    attrib = ((s & ~mask) >> 8);
    printf("ch='%c' attrib=0x%02x\n", ch, attrib);
    attrib ^= 0x10;
    (void) lseek(fd, -1, 1);
    (void) write(fd, &attrib, 1);
    exit(EXIT_SUCCESS);
}
 



VOIR AUSSI   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
console(4), tty(4), ttyS(4), gpm(8)  



TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 18 octobre 1996 et révisée le 29 décembre 2007.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 4 vcs ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.


 



Sommaire   Début   Suivant   Sommaire   Préc.page.lue   Accueil
NOM
DESCRIPTION
FICHIERS
VERSIONS
EXEMPLE
VOIR AUSSI
TRADUCTION

Ce document a été créé par man2html suivi de man2html.pl, le 17/10/2008 17:53:32, en utilisant les pages de 'man'.
 

Valid HTML 4.01 Transitional