Tag: oirection

多个xterm伪终端仅用作多个线程的输出

我一直在努力从我的程序中启动几个线程,我希望每个线程输出到各自的终端窗口(我已经以平铺模式弹出)。 它们不是炮弹,只是输出的终端窗口。 我正在用C编写ubuntu。我有它工作,但由于某种原因,几分钟之后就好像xterm显示缓冲区填满(彼此独立)并且它们停止显示新文本。 旧文本仍然存在,线程在后台继续做他们的事情,但没有新的输出。 我已经尝试了所有我能找到的东西并且仍然感到困惑。 我似乎找不到可能的: 缓冲区我需要刷新或清除 一种清除屏幕的方法(即使在我重定向输入或尝试将它们作为输出发送到xterm之后,那些VT转义码也什么都不做) 一种将光标重新定位在终端窗口左上角的方法 一种重置我指向适当的/ dev / pts的文件描述符的方法 以下是它现在的情况(也请随意指出我正在做的任何多余或错误;在这种情况下,NB可移植性并不是非常重要)。 我省略了错误检查。 我希望我不必使用system(),但这是我可以使它工作的唯一方法(posix_spawn也没有工作)。 此代码在每个线程中运行(未显示切片效果,但它通过共享内存和xterm命令行上的一些其他参数进行管理): char buf_xt[256]; // Used along with sprinf() and write() to output to xterm char *pSptyName; int xterm_fd1; // File descriptor for xterm xterm_fd1 = posix_openpt(O_RDWR | O_NONBLOCK | O_NOCTTY); pSptyName = ptsname(xterm_fd1); sprintf(buf_xt, “xterm -S%s/%d &”, pSptyName, xterm_fd1); […]