作者cole945 (躂躂..)
看板LinuxDev
标题Re: [问题] 如何判断程式是否在背景?
时间Tue Mar 10 23:03:54 2015
※ 引述《godspeedlee (你,我可以)》之铭言:
: 各位先进:
: 我试验了两个方法,第一个不可行,第二个可行,有人知道为什麽吗?
: //方法1
: //无论 ./a.out 还是 ./a.out &
: //都会进入 section 1
: if(isatty(STDIN_FILENO)){
: /* section 1 */
: }else{
: /* section 2 */
: }
isatty 是在用来判断是不是 terminal (例如不是 pipe)
你可以把 isatty (STDIN_FILENO) 和 isatty (STDOUT_FILENO) 印出来
然後看看下面这几种情况的结果
$ ./a.out
$ echo "hello" | ./a.out
$ ./a.out | cat
$ echo "hello" | ./a.out | cat
另外, 你可以写一行 scanf ("%d", &i) 然後用
$ ./a.out &
执行. 虽然是在 background 执行, 但一遇到 input,
就会 suspend 住, 等待被带到前景 (例如使用 fg 指令) 时再从 terminal 接受input
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.110.214.155
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/LinuxDev/M.1425999836.A.E04.html
1F:推 godspeedlee: 感谢! 03/14 14:49