0

我有两个线程。使用 *pthread_create* 创建的主线程和另外两个线程,例如 thread_1 和 thread_2。

主线程将输出写入我用来运行程序的终端中。然后,我想创建两个新窗口,thread_1 和 thread_2 将在其中写入一些文本。

我尝试使用系统调用“system()”并运行“/bin/bash”,但之后没有出现新的终端。

现在,我正在考虑使用一些图形库(g2,SDL ...)。

我在网上搜索了几个小时,但找不到一个好的解决方案。我只需要在独立窗口中输出文本,我不想要任何类型的图纸,只需要文本行。

我正在使用 Linux mint 和 C 语言。

4

3 回答 3

2

您需要该程序来打开其他两个窗口吗?如果不:

让每个线程写入一个单独的文件。手动打开另外两个窗口。在每个新窗口中使用 bash 命令“tail -f”来显示每个文件的输出。

于 2013-10-29T19:04:13.943 回答
1

想到的最接近的非gui解决方案是ncurses

于 2013-10-29T19:00:47.647 回答
0

感谢您的建议。

我用 Jay 的提示解决了我的问题。

这很简单。我把程序写入数据到一个文件中。(最接近先进先出的想法)

然后,在程序中我运行这个:

system("mate-terminal -e --command='tail -f filename.txt'");

瞧!它创建一个新的终端窗口并运行命令 tail -f。

感谢您的回答,他们帮助我思考了那个解决方案。我尝试了 ncurses,但在安装软件包然后使用 -lncurses 标志编译时遇到问题。有一天我会尝试ncurses,但现在问题已经解决了。

再见

于 2013-10-31T17:46:32.910 回答