【发布时间】:2011-07-01 10:18:42
【问题描述】:
抱歉,标题太长了。我正在用 C 语言开发一个网络程序,它可以在标准输出上显示从网络接收到的消息,并通过 GNU readline 库在标准输入上接受用户输入。 问题是,当用户通过 readline 在主线程上输入命令时,网络消息到达并输出到 stdout,这将产生如下内容:
场景:
输入:1234567890
网络消息:你好
当用户刚刚输入“7”时,网络消息到达
终端实际输出:
输入> 1234567Hello
890_
有没有办法得到这样的输出?
你好
输入>1234567890_
附言_ 是光标。
提前致谢!
【问题讨论】:
-
我认为由于 readline 的设计,您想要实现的目标相当困难。您可以尝试一些技巧,将光标移动转义符附加到您的消息中并将其全部发送到单个
write,但仍然可能存在竞争条件,并且很难处理已换行的输入行。
标签: c pthreads readline libreadline