2011-02-11 68 views

回答

2

isatty檢查一個tty,而不是一個管道。改用fstat(STDIN_FILENO, &sb)並檢查S_ISFIFO(sb.st_mode)

要檢查是否有任何可以讀取的「in」stdin,請使用例如poll(2),事件掩碼爲POLLIN

+1

據我所知,如果程序從tty讀取,OP會產生一個錯誤,所以isatty是一個很好的答案。都輸出|程序和程序<文件將失敗isatty。 – 2011-02-12 05:35:34

相關問題