Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在玩非规范终端仿真并尝试将单个字符(我的输入)与退格键进行比较
if(c == '\x08') { dosomething(); }
在裸机操作系统上工作,但是当我在 virtualbox 中运行它时,它根本不起作用。如果我这样做,Virtualbox 只会检测退格键
if(c == '\x7f') { dosomething(); }
这可能是因为仿真虚拟机正在干扰实际的键盘输入吗?
您刚刚遇到了经典DEL与BKSP困境。没有完美的解决方案,您必须承认某些终端配置为BKSP在用户按下退格键时输出 (0x08) ASCII 字符,而其他终端则输出DEL(0x7f)。
DEL
BKSP
大多数终端仿真器都有这样的选项,我还没有看到很多应用程序软件实际上可以解决这个问题。它通常留给终端程序,用户决定是否按 DEL 或 BKSP 或重新配置他们的终端以确保正确的程序运行。