【发布时间】:2012-10-28 21:10:42
【问题描述】:
我知道它看起来很丑,但是,假设一个简单的程序,比如:
int main(void)
{
int line=0, column=1;
char c;
system("clear");
printf("0123\n4567\n");
getprintedchar(column, line, &c);
printf("%c", c);
return 0;
}
这将打印号码1。
我们如何使用 LINUX 终端编写这样的功能。我知道我们可以使用ncurses,但这会阻止printf 等许多选项。
我想知道我们是否可以使用struct termios 或其他一些超级笨拙的黑客!
对于来自 borland/windows 的用户,它类似于 conio.h 函数 gettext() 的简化版本。
我们可以读取某个内存区域吗?也许一些assembly 可以直接从Video RAM 的某个区域获取角色?
谢谢!
【问题讨论】:
-
在过去,您所要做的就是读取地址 0xB8000。这在控制台中是不可能的,除非在诸如 NTVDM 之类的 VM 上,不知道是否有 Linux 的等价物。
-
没有解决问题的答案,我会接受指出不可能的答案(直到出现另一个解决方案)