gpt4 book ai didi

c - 什么 Windows 组件实现了类似于 readline 的功能?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:40:39 25 4
gpt4 key购买 nike

在这个问题中,我要问的是 readline 的一个特定功能位:

The Readline library includes additional functions to maintain a list of previously-entered command lines, to recall and perhaps reedit those lines

现在在带有 Visual Studio 的 Windows 上,您不需要臭臭的 readline。您可以使用 fgets和箭头键会愉快地记忆起您之前输入的内容。当然你也可以编辑这些。

在 linux 上,完全相同的代码(循环中的 fgets)不能像这样工作。向上箭头显示为 ^[[A 并且左右箭头也不允许您导航该行,如实验所示并且还描述了 here .

我的问题是,Windows 的哪个部分可以进行编辑?

我认为它可以是 conhost.exe 或 fgets 等的实现方式。不知何故,我怀疑是前者。无论如何,我想知道它究竟是如何工作的是否在任何地方都有记录等等。例如,除了箭头之外还有哪些其他键具有特殊含义并以不同方式处理而不是返回为fgets 写入的缓冲区的一部分。

最佳答案

documentation for DOSKEY列出特殊键。

我不知道有任何文档解释说在 32 位 Windows 中此功能内置于控制台中,doskey.exe 只是它的一个接口(interface)。但是,很容易确认此功能不依赖于使用 C 运行时库或从命令行 shell 启动的正在运行的控制台应用程序。

在当前版本的 Windows 中,实现此功能的实际代码位于 conhost.exe 中,这是一个合理的猜测,但这当然是一个实现细节,如有更改,恕不另行通知。从程序员的角度来看,重要的是 DOSKEY 功能存在于任何控制台窗口中,并且只要应用程序处于 cooked mode 中就可用。 .

请注意,熟食模式是默认设置。因此,控制台应用程序将具有 DOSKEY 功能,除非应用程序专门禁用它。

关于c - 什么 Windows 组件实现了类似于 readline 的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43162705/

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