C语言实现Linux自定义终端文本光标禁用的方法咨询
解决方案
你当前使用的是直接操作VGA文本模式IO端口的光标控制方案,禁用光标逻辑非常简单:VGA光标起始寄存器(对应端口命令码0x0A)的第5位为光标禁用标志,将该位置1即可关闭光标显示。
对应的实现代码如下:
void disable_cursor(void) { write_port(FB_CMD_PORT, 0x0A); write_port(FB_DATA_PORT, read_port(FB_DATA_PORT) | 0x20); }
如果不需要保留原寄存器的其他配置,也可以用更简单的无读操作写法,直接写入禁用参数即可:
void disable_cursor_simple(void) { write_port(FB_CMD_PORT, 0x0A); write_port(FB_DATA_PORT, 0x20); }
后续如果需要重新显示光标,直接调用你现有代码里的enable_cursor函数,传入合法的光标起止行参数即可,比如常用的下划线光标可以传enable_cursor(14, 15)。
内容的提问来源于stack exchange,提问作者zhn11tau
相关产品推荐
相关产品推荐

