gpt4 book ai didi

c - 如何像 ghostscript 一样将 X11 键盘事件路由到标准输入?

转载 作者:太空宇宙 更新时间:2023-11-04 00:41:30 25 4
gpt4 key购买 nike

我正在尝试编写 ghostscript 的克隆,但我无法弄清楚它们是如何制作的,因此您可以在图形窗口中键入内容,并且击键会显示在终端窗口中,就像您在那里键入的一样首先。因此,在收到 KeyRelease 事件后,我能否以某种方式将 char 填充到 stdin 中,以便用普通的文件读取代码读取?或者我是否必须在 stdin 前面创建自己的内部缓冲区,以便我可以将新字符写入其中?或者是否有一些简单的方法可以将键盘事件从我的应用程序窗口映射到 Xterm?

我愿意做这份工作,但我什至不知道我在这里寻找什么。帮忙?!!

最佳答案

我认为 gs 不会这样做(至少在 linux 上)。

我试过它从 SSH session 运行到我的 linux 机器,然后将焦点切换到弹出渲染图像(老虎)的 X11 窗口,我在那里按下的键没有转到远程主机上的应用程序。

strace 的(末尾)显示 GS 正在等待 stdin——fd=0 的读取

read(3, "  } if\n  psuserparams readonly p"..., 4096) = 3258brk(0x1124000)                          = 0x1124000read(3, "", 4096)                       = 0close(3)                                = 0munmap(0x7f8ccaee5000, 4096)            = 0poll([{fd=4, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=4, revents=POLLOUT}])writev(4, [{"+\2\1\0", 4}, {NULL, 0}, {"", 0}], 3) = 4poll([{fd=4, events=POLLIN}], 1, -1)    = 1 ([{fd=4, revents=POLLIN}])read(4, "\1\1'\0\0\0\0\0\1\0\200\0\0\0\0\0\1\0\0\0\264\2\0\0008\0A\2\4\0\0\0", 4096) = 32read(4, 0xc9bd54, 4096)                 = -1 EAGAIN (Resource temporarily unavailable)fstat(1, {st_mode=S_IFREG|0644, st_size=143204, ...}) = 0mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ccaee5000write(1, "GS>", 3GS>)                      = 3read(0,  ...unfinished ...

为了使按键 (Ctrl-C) 生效,我不得不将焦点切换回 ssh 窗口。当焦点是图像 X11 窗口时,我曾尝试“退出”以及 ctrl-C。

关于c - 如何像 ghostscript 一样将 X11 键盘事件路由到标准输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6476116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com