将终端附加到创建的线程,在 Linux 上C++
Attach a terminal to created thread, in C++ on Linux
我正在C++开发一个聊天服务器。该程序是从终端构建和运行的。在终端中运行时,我可以使用" printf
"正常写入此终端。写入此终端的一些信息是新传入连接、传出连接等的警报。
现在我需要获取键盘输入,以便管理员可以键入命令以查看聊天服务器中的变量值。我打算创建一个新线程并向其附加一个新终端。建议调用 system("gnome-terminal"),但它需要一点延迟 sleep()
,似乎不是一个好的选择,因为重定向到这个 gnome-terminal 的所有内容都将被视为 bash 命令。而且我不知道如何将"system
"命令打开的终端连接到线程。
有什么简单的方法可以将终端附加到创建的线程上吗?
也许可以阅读一下如何在 Linux 中使用管道
http://linuxprograms.wordpress.com/tag/pipes/
正如这个问题中的部分答案:避免在脚本执行后关闭 gnome-terminal?
有一个不错的选择,如下所示:
(1) 使用主端子进行正常输入/输出。
(2) 在调用"tail"之前创建日志文件(log.file)
(3) 使用"tail"命令显示日志内容(日志文件)
//c++ code
system("gnome-terminal -e "bash -c 'tail -f log.file'"");
(4)将内容附加到"log.file"中,以告诉"尾巴"显示它。
相关文章:
- 在C++/Linux中设置单调时钟的一些技巧
- Linux的Cpp上的计时器
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 在Linux中哪里可以找到互斥、未来等的源代码
- 如何在linux终端中同时编译和运行c++代码
- 在Linux for Windows上编译C++代码时出错
- 如何找到锁定Linux futex的C++行
- 在linux上调试巨大的C++项目
- 如何处理linux终端中带有负号(-)的C++中的命令行参数
- c++方法参数只能在linux的发布模式下自行更改
- 在Linux和C++中的Windows上,散列字符串值会产生不同的输出
- 这里在 Linux 中具有"CreatePipe"和"CreateProcessW"功能吗?
- 函数在Windows或Linux上运行时表现不同
- 在Linux下捕获SIGKILL的C++程序
- 在为LINUX创建共享库时,如何避免STL的私有/弱副本
- 使用 cmake 的 Linux 终端上的"Conversion to non-scalar type is requested"错误
- 如何在CPP中创建应该在Windows和Linux上运行的套接字?
- mysql C++ connector [mysql-connector-c++-8.0.19-linux-glibc2
- 这些是什么样的错误?即使我不在 Linux 上工作,我也遇到了 Linux 错误
- CMake WxWidgets项目成功地在Linux上构建,但没有在Windows上构建