【问题标题】:Virtualbox has a different byte code for backspace than an actual bare metal OSVirtualbox 的退格字节码与实际的裸机操作系统不同
【发布时间】:2013-09-16 06:11:03
【问题描述】:

我正在使用非规范终端仿真并尝试将单个字符(我的输入)与退格键进行比较

if(c == '\x08')
{
 dosomething();
}

在裸机操作系统上工作,但是当我在 virtualbox 中运行它时,它根本不起作用。如果我这样做,Virtualbox 只会检测退格键

if(c == '\x7f')
{
 dosomething();
}

这可能是因为仿真 virtualbox 正在干扰实际的键盘输入吗?

【问题讨论】:

    标签: c terminal termios


    【解决方案1】:

    您刚刚遇到了经典的DELBKSP 的困境。没有完美的解决方案,您必须承认,有些终端配置为在用户按下退格键时输出BKSP (0x08) ASCII 字符,而另一些终端配置为输出DEL (0x7f)。

    大多数终端仿真器都可以选择这种事情,我还没有看到很多应用软件可以真正解决这个问题。它通常留给终端程序,由用户决定是按 DEL 还是 BKSP 或重新配置他们的终端以确保程序正常运行。

    【讨论】:

      猜你喜欢
      • 2018-05-17
      • 2015-02-22
      • 2015-10-13
      • 2011-11-05
      • 1970-01-01
      • 2020-09-12
      • 1970-01-01
      • 2015-08-09
      • 1970-01-01
      相关资源
      最近更新 更多