2011-02-11 69 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

相关问题