在我的 C 程序中,我想知道我的可执行文件是否像这样在前台运行
$./a.out
或者像这样
$./a.out &
如果你是前台工作,
getpgrp() == tcgetpgrp(STDOUT_FILENO)
or STDIN_FILENO
or STDERR_FILENO
或您附加到控制终端的任何文件描述符。 (如果你不确定,open("/dev/tty")
总是会为您提供控制终端的文件描述符(如果存在)。)
这是什么openssh http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/progressmeter.c?rev=HEAD确实如此,并且比处理更容易SIGTTIN/SIGTTOU
如果您只是想快速检查一下。
另一方面,你可能已经有背景了
$ ./a.out
^Z
[1]+ Stopped ./a.out
$ bg
[1]+ ./a.out &
或前景
$ fg
./a.out
在任何时间点。你不能期望你检查一次之后它仍然是正确的(或错误的)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)