我知道它会显得丑陋,但是,假设一个简单的程序,例如:
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
或其他一些 super 笨拙的黑客!
对于来自 borland/windows 的用户来说,它类似于 conio.h
函数 gettext()
的简化版本。
我们可以读取某些内存区域吗?也许有一些汇编
可以直接从Video RAM
的某些区域获取字符?
谢谢!
最佳答案
I know we can use ncurses, but that prevent a lot of options printf and alike allows.
您始终可以使用 snprintf
来格式化字符串,然后以任何您想要的方式输出它。 (N)curses 是一个很好的终端处理库。
Can we read some area of memory?
特别是,这是不可能的。您无法访问终端的内存,因为它是一个单独的进程并且不会共享。
关于将文本从终端复制到内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13292987/