実行中のアプリケーションをバックグラウンドで実行するように変更する

実行中のアプリケーションをバックグラウンドで実行するように変更する

私はLinuxで動作するC言語でこのアプリケーションを開発しています。最初はうまくいきます。

~$ ./myApp

ユーザーが特定の手順を確認する必要があるため、これを行います。

しかし、確認したら、ユーザーが別のプロセスを実行できるようにバックグラウンドで実行したいと思います。しかし、最初からバックグラウンドでアプリを実行すると。

~$ ./myApp &

システムはキーボードストロークをmyAppの質問に対する答えとして扱いません。

重要な場合、コードの一部は次のとおりです。

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

LinuxやCでこれを行う方法はありますか?

事前にありがとう

答え1

Linuxでは、Ctrl-Zを実行してプログラムを停止し、aを実行してbgバックグラウンドで実行できます。だからそれ:

~$ ./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();

関連情報