0

我正在用 C++ 开发一个聊天服务器。该程序是从终端构建和运行的。在终端中运行时,我可以使用“”正常写入此终端printf。写入此终端的一些信息是新传入连接、传出连接等的警报。

现在我需要获取键盘输入,以便管理员可以键入命令来查看聊天服务器中变量的值。我打算创建一个新线程并为其附加一个新终端。一个建议是调用 system("gnome-terminal"),但它需要一点延迟sleep(),似乎不是一个好的选择,因为重定向到这个 gnome-terminal 的所有内容都将被视为 bash 命令。而且我不知道如何将' system'`命令打开的终端附加到线程。

将终端附加到创建的线程的任何简单方法?

4

2 回答 2

2

也许读过这篇关于如何在 Linux 中使用管道的文章

http://linuxprograms.wordpress.com/tag/pipes/

于 2012-10-05T10:10:27.543 回答
0

正如在这个问题中部分回答的那样:在脚本执行后避免 gnome-terminal 关闭?

有这样一个不错的选择:

(1) 使用主端子进行正常输入/输出。

(2) 在调用'tail'之前创建日志文件(log.file)

(3) 使用 'tail' 命令显示日志内容(日志文件)

//c++ code
system("gnome-terminal -e \"bash -c 'tail -f log.file'\"");

(4) 将内容附加到 'log.file' 以告诉 'tail' 显示它。

于 2012-10-08T06:36:08.013 回答