繁体   English   中英

GNU Readline 可以处理多个流吗?

[英]Can GNU Readline handle multiple streams?

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

Fork 类型的网络服务器不是最有效的,所以我想使用 poll/epoll 代替,但是对于该readline必须配置为使用多个 stream 缓冲区和历史记录,每个客户端连接一个。

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

Readline 被记录为专门从终端读取。 它没有记录的机制来同时为多个输入维护 state,而且您已经在使用它从 stream 读取数据时如履薄冰,实际上这不是终端。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM