如何将后台处理移动到前台

时间:2015-12-06 20:22:53

标签: c linux shell unix foreground

我想将流程移至前台。我知道bash我必须使用fg,但在c中我该如何实现呢?任何建议作为我的起点?

2 个答案:

答案 0 :(得分:1)

背景和前景只是谁接收用户输入终端的输入。这些过程仍由操作系统安排。

如果从shell中将进程置于后台,则必须断开此进程的标准输入文件描述符与shell的终端。 输出仍然可以转到终端(取决于您预期的shell行为)。

要将过程重新置于前台,您必须将标准输入重新连接回终端,以便过程可以从其接收输入,即再次从用户接收输入。

答案 1 :(得分:0)

最佳入口点是tcsetpgrp,这个函数可以让您将进程组设置为终端控件的接收者,并被授权从终端获取输入和输出。

为了使所有这些工作正常,您还需要查看setsid来设置会话。

后续有趣的功能是setpgid来构建进程组。