我在我的进程中有一个方法,只有当该进程不在后台运行时才应该运行。如何动态测试当前进程是否在后台运行?谢谢
我在我的进程中有一个方法,只有当该进程不在后台运行时才应该运行。如何动态测试当前进程是否在后台运行?谢谢
以下是我在使用带作业控制的终端程序时所用的方法(大多数终端都适用,详见下文):
/* We can read from stdin if :
* - we are in foreground
* - stdin is a pipe end
*/
static int validate_stdin(void) {
pid_t fg = tcgetpgrp(STDIN_FILENO);
int rc = 0;
if(fg == -1) {
debug_printf("Piped\n");
} else if (fg == getpgrp()) {
debug_printf("foreground\n");
} else {
debug_printf("background\n");
rc = -1;
}
return rc;
}
尝试检查 DISPLAY 的可用性。显示了 xset 命令的源代码 如何检查 Linux 控制台屏幕保护程序是否已经使屏幕变黑