如何从终端分离程序并将其附加回来?

时间:2012-10-30 11:19:42

标签: c linux terminal embedded-linux multiplexing

我正在开发一个嵌入式项目,我需要一个没有外部依赖项的程序,就像screen或tmux一样。这两个程序并不好,因为它们需要其他库。

由于我只需要分离一个程序,当我再次登录时能够注销并取回它,我想知道我是否可以为此编写一个小程序。

你知道我需要做哪些调用(在C中)来分离程序并将其恢复吗?

1 个答案:

答案 0 :(得分:3)

如果我理解你的要求,你理论上可以使用termios struct和ioctl来实现这一点。

ioctl(0, TIOCNOTTY, NULL);

分离和

ioctl(0, TIOCSCTTY, 1);

附加回终端。但是,它并没有真正完成这项工作。

以下解决方案描述了一个不太好但实际的工作

tty demulsified

主要目的是将程序附加到另一个终端,但我相信这也是您实现目标的方式。

关于您对嵌入式平台的提及,您可以从busybox

找到一些帮助

它用一个非常小的二进制文件编译嵌入式linux,并包含大多数常用的linux实用程序,如getty,stty等。

相关问题