C / Linux编程:伪terminal:如何从当前stdioredirect到pty,并在使用后redirect回来

我试图创build一个简单的远程pipe理程序,用户可以连接到我的小设备,并“接pipe”系统的当前stdio。 例如:

系统用控制台=串行端口启动 – >客户端连接,将input/输出redirect到套接字

我已经完成了对networking部分的redirect(通过阅读大量的手册页,我从来没有赞赏这些手册页,直到现在!:D)使用Linux的ptyfunction。

openpty() – > grantpt() – > unlockpt() – >客户端连接,执行login_tty()

我的程序然后处理主FD和sockets的监控。 但是,我有一个很大的问题:我不知道如何重新定向输出。 我尝试了以下内容:

o打开串口文件的硬编码

o使用login_tty()中打开的串口文件

但它似乎并没有工作(关于进程组和在执行第一个login_tty()之后成为进程组的领导者)。 任何build议或想法?

login_tty()是否具有某种“反向”function?

这听起来很像“屏幕”。 你可以学习代码,并从那里模仿它: http : //www.gnu.org/software/screen/