как выводить сообщения на стандартный вывод в другом потоке при чтении из стандартного ввода с помощью строки чтения GNU без нарушения ввода?

Извините за длинное название. Я разрабатываю сетевую программу на C, которая может отображать сообщения, полученные из сети, на stdout и принимать пользовательский ввод на stdin через библиотеку чтения GNU. Проблема в том, что когда пользователь вводит команды в основном потоке через строку чтения, поступает сетевое сообщение и выводится на стандартный вывод, в результате чего получается что-то вроде этого:

Сценарий:

Вход: 1234567890
Сетевое сообщение: Здравствуйте
Сетевое сообщение приходит, когда пользователь просто набирает «7»

Фактический вывод на терминале:

Вход> 1234567 Привет
890_

Есть ли способ получить такой результат?

Здравствуйте
Input> 1234567890_

ps _ - курсор.

Заранее спасибо!

6
задан howanghk 21 February 2011 в 17:00
поделиться