将文本从终端复制到内存

标签 c linux console terminal

我知道它会显得丑陋,但是,假设一个简单的程序,例如:

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/

相关文章:

c - 使用 3 轴加速度计和陀螺仪获取方向

C FOR 条件

c - 初始化 int 变量时出现段错误(核心已转储)

php - 如何为交互式控制台应用程序编写单元测试

c - 为什么我可以用 GCC 制作的最小编译 exe 是 67KB?

linux - 如何使用 ALSA 将音频时钟从属到系统时钟?

linux - 当我在 perl 中调用 shell 命令时如何转义我的字符串?

linux - 如何删除特定字符后的字符串中的所有内容?

javascript - 从 JavaScript 控制台查找和操作 React.js 组件

c# - 使用 Console.Beep .Net 播放语音词的声音