标签: c++ linux unix command-line pipe
可能重复: Detect if stdin is a terminal or pipe in C/C++/Qt?
我正在编写一个命令行应用程序,它将数据作为命令行参数或来自cin。
有没有办法检查用户是否在应用程序中输入了一些数据($ ./myapp< test.txt),如果没有显示键盘输入的提示?
如果我正在检查!cin.good()/ cin.eof()等,则提示将永远不会出现。
答案 0 :(得分:6)
isatty(STDIN_FILENO)
将返回标准输入是否为终端(tty),即交互式。
答案 1 :(得分:0)
也许你可以用fstat(2)和S_ISFIFO做什么?