将正在运行的应用程序更改为在后台运行

将正在运行的应用程序更改为在后台运行

我正在用 C 语言开发这个在 Linux 上运行的应用程序。一开始运行正常。

~$ ./myApp

我这样做是因为用户必须确认特定步骤。

但在确认后我想在后台运行它以允许用户运行其他进程。但是如果我从一开始就在后台运行该应用程序。

~$ ./myApp &

系统不会将键盘敲击视为 myApp 问题的答案。

如果重要的话,部分代码是这样的

while (flag)
{
  pressedKey = getchar();
  switch(pressedKey)
  {
    //some code
  }
}

有没有办法在linux或C中做到这一点?

先感谢您

答案1

在 Linux 中,您可以发出 control-Z 来停止程序并发出 abg让它在后台继续运行。那么那就是:

~$ ./myApp
  press the any-key
  press ^Z
~$ bg

在 C 中,您通常会守护程序,例如

while (flag)
{
  pressedKey = getchar();
  switch(pressedKey)
  {
    //some code
  }
}
process_id = fork();
if (process_id < 0) {
    exit(1);
}
if (process_id > 0) {
    exit(0);
}
close(STDIN_FILENO);
close(STDOUT_FILENO);
close(STDERR_FILENO);
do_the_stuff_in_the_background();

相关内容