我正在用 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();