VCS - Linux手册页
Linux程序员手册 第4部分
更新日期: 2020-06-09
名称
vcs,vcsa-虚拟控制台内存
说明
/ dev / vcs0是主要编号为7且次要编号为0的字符设备,通常具有0644模式和所有权root:tty。它指的是当前显示的虚拟控制台终端的内存。
/ dev / vcs [1-63]是虚拟控制台终端的字符设备,它们的主要编号为7,次要编号为1至63,通常为0644模式,所有权为root:tty。 / dev / vcsa [0-63]是相同的,但是使用了无符号short s(以主机字节顺序),该s包含属性,并以四个字节作为前缀来给出屏幕尺寸和光标位置:行,列,x,y。 (在屏幕的左上角x = y =0。)
加载512个字符的字体时,可以通过在/ dev / tty [1-63]上应用ioctl(2)VT_GETHIFONTMASK操作(在Linux内核2.6.18及更高版本中可用)来获取第9位位置;该值以第三个ioctl(2)参数指向的无符号short返回。
这些设备代替了ioctl_console(2)的screendump ioctl(2)操作,因此系统管理员可以使用文件系统权限来控制访问。
前八个虚拟控制台的设备可以通过以下方式创建:
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(2)请求。
文件
/ dev / vcs [0-63]
/ dev / vcsa [0-63]
版本
在Linux内核的1.1.92版本中引入。
示例
您可以通过切换到vt1并键入vt3,在vt3上进行屏幕转储
cat /dev/vcs3 >foo
请注意,输出不包含换行符,因此可能需要进行一些处理,例如
fold -w 81 /dev/vcs3 | lpr
或(恐怖片)
setterm -dump 3 -file /proc/self/fd/1
/ dev / vcsa0设备用于盲文支持。
该程序在第二个虚拟控制台的光标下显示字符和屏幕属性,然后在其中更改背景色:
#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 attrib; int ch; 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), SEEK_SET); (void) read(fd, &s, 2); ch = s & 0xff; if (s & mask) ch |= 0x100; attrib = ((s & timask) >> 8); printf("ch=0x%03x attrib=0x%02x\n", ch, attrib); s ha= 0x1000; (void) lseek(fd, -2, SEEK_CUR); (void) write(fd, &s, 2); exit(EXIT_SUCCESS); }
另外参见
ioctl_console(2),tty(4),ttyS(4),gpm(8)
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。