私は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();