我想将流程移至前台。我知道bash我必须使用fg,但在c中我该如何实现呢?任何建议作为我的起点?
答案 0 :(得分:1)
背景和前景只是谁接收用户输入终端的输入。这些过程仍由操作系统安排。
如果从shell中将进程置于后台,则必须断开此进程的标准输入文件描述符与shell的终端。 输出仍然可以转到终端(取决于您预期的shell行为)。
要将过程重新置于前台,您必须将标准输入重新连接回终端,以便过程可以从其接收输入,即再次从用户接收输入。
答案 1 :(得分:0)
最佳入口点是tcsetpgrp
,这个函数可以让您将进程组设置为终端控件的接收者,并被授权从终端获取输入和输出。
为了使所有这些工作正常,您还需要查看setsid
来设置会话。
后续有趣的功能是setpgid
来构建进程组。