1. NOM▲
vcs, vcsa - Mémoires des consoles virtuelles
2. DESCRIPTION ▲
/dev/vcs0 est un périphérique caractère 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 utilisents 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 9e bit peut être extraite en appliquant l'opération ioctl(2) VT_GETHIFONTMASK (disponible dans les noyaux Linux 2.6.18 et suivants) sur /dev/tty[1-63] ; la valeur est renvoyée dans l'entier de type unsigned short pointé par le troisième paramètre de ioctl(2).
Ces périphériques remplacent les opérations ioctl(2)s « 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.
3. FICHIERS ▲
/dev/vcs[0-63]
/dev/vcsa[0-63]
4. VERSIONS ▲
Introduits dans la version 1.1.92 du noyau Linux.
5. EXEMPLE ▲
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 : old -w 81 /dev/vcs3 | lpr ou (horrible !) xetterm -dump 3 -file /proc/self/fd/1
Le périphérique /dev/vcsa0 est utilisé pour le support Braille. 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);
}
6. VOIR AUSSI ▲
7. COLOPHON ▲
Cette page fait partie de la publication 3.52 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse http://www.kernel.org/doc/man-pages/.
8. TRADUCTION ▲
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.
Christophe Blaess <http://www.blaess.fr/christophe/> (1996-2003), Alain Portal <http://manpagesfr.free.fr/> (2003-2006). Simon Paillard et l'équipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en écrivant à <>.
Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».