我正在用C ++开发一个聊天服务器。该程序是从终端构建和运行的。在终端中运行时,我可以使用“printf
”正常写入此终端。写入此终端的一些信息是新传入连接,传出连接等的警报。
现在我需要获取键盘输入,以便管理员可以键入命令以查看聊天服务器中变量的值。我打算创建一个新线程并为其附加一个新终端。建议是调用system(“gnome-terminal”),但它需要sleep()
稍微延迟,似乎不是一个好的选择,因为重定向到此gnome-terminal的所有内容都将被视为bash命令。我不知道如何将“system
”命令打开的终端附加到线程。
将终端附加到创建的线程的任何简单方法?
答案 0 :(得分:2)
也许有关于如何在Linux中使用管道的阅读
答案 1 :(得分:0)
在此问题中已部分回答:Avoid gnome-terminal close after script execution?
有一个很好的选择:
(1)使用主终端进行正常输入/输出。
(2)在调用'tail'
之前创建日志文件(log.file)(3)使用'tail'命令显示日志内容(日志文件)
//c++ code
system("gnome-terminal -e \"bash -c 'tail -f log.file'\"");
(4)将内容附加到'log.file'以告诉'tail'显示它。