我确实知道它与控制台有关(“真正的”TTY,位于 Ctrl+Alt+F[1-9])。
ioctl_console
手册页列出了许多 KD* 前缀常量。还有一个很简单的虚拟vt.h
终端或伪终端。 KD是什么鬼?/usr/include/linux
VT
答案1
请注意,如果可能,VT_
中的常量/usr/include/linux/vt.h
的高字节设置为 0x56,这是大写字母 的 ASCII 代码V
。
开头/usr/include/linux/kd.h
有一条评论:
/* 0x4B is 'K', to avoid collision with termios and vt */
KD_
以 - 为前缀的两字节数字ioctl()
的高字节均设置为 0x4b,即大写字母 的 ASCII 码值K
。
所以它主要不是一个首字母缩略词,而是一个助记符:在读取十六进制转储时,您可以查看 ioctl 值的高字节的字符表示(或者如果您是一名认真的 C 程序员,您可能已经知道大部分 ASCII无论如何,请牢记在心)要知道这是一个“K系列”ioctl,所有这些ioctl都处理K
eyboard和D
isplay——换句话说,就是拥有一个的系统上的KVM风格的系统控制台。
因此,选择的主要原因K
似乎是它与 ioctl 数字的高字节相对应,而第二个字母可能只是被选择以使其有意义 - 在这种情况下,“键盘和显示器”有效。
(一些嵌入式系统甚至大型老式 Unix 服务器可能根本没有 KVM 风格的控制台,而只有一个充当控制台的串行端口。)