Re: [問題] 如何判斷程式是否在背景?
※ 引述《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://www.ptt.cc/bbs/LinuxDev/M.1425999836.A.E04.html
推
03/14 14:49, , 1F
03/14 14:49, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章