GNU Readline 可以处理多个流吗?

Can GNU Readline handle multiple streams?

我正在构建一个使用 GNU Readline 处理控制台输入的 telnet 应用程序。当前的实现为每个新的客户端连接创建一个新的子进程——这为每个子进程分配一个 readline 实例。

叉型网络服务器不是最高效的,所以我想改用 poll/epoll,但为此 readline 必须配置为使用多个流缓冲区和历史记录,每个客户端连接一个。

我阅读了 GNU readline 文档以寻找此类配置,但没有找到。这可能吗,或者是否有某种 readline 替代方案可以启用此功能?我要放弃这个想法吗?

Readline 被记录为专门从终端阅读。它没有记录在案的机制来同时维护多个输入的状态,并且您已经如履薄冰地使用它从实际上不是终端的流中读取。

此外,readline 的语义与多路复用样式服务不匹配,因为在每次调用时它都会阻塞,直到它可以读取完整的一行。这根本不是一个可行的替代方案,也不是任何具有类似的一次一行阻塞行为的类似工作。