Re: [問題] 如何判斷程式是否在背景?

看板LinuxDev作者 (躂躂..)時間10年前 (2015/03/10 23:03), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《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
文章代碼(AID): #1K_mVSu4 (LinuxDev)
文章代碼(AID): #1K_mVSu4 (LinuxDev)