可能重复:
Detect if stdin is a terminal or pipe in C/C++/Qt?期待输入从给std :: cin(Unix的C++)
我正在写期望的数据,可以是命令行参数的命令行应用程序,或来自cin。
有没有办法检查用户是否在应用程序中输入了一些数据($ ./myapp < test.txt),如果没有,只显示键盘输入提示?
如果我正在检查!cin.good()/ cin.eof()等,则提示不会出现。
可能重复:
Detect if stdin is a terminal or pipe in C/C++/Qt?期待输入从给std :: cin(Unix的C++)
我正在写期望的数据,可以是命令行参数的命令行应用程序,或来自cin。
有没有办法检查用户是否在应用程序中输入了一些数据($ ./myapp < test.txt),如果没有,只显示键盘输入提示?
如果我正在检查!cin.good()/ cin.eof()等,则提示不会出现。
isatty(STDIN_FILENO)
将返回标准输入是否是终端(tty),即交互式。
也许你可以用fstat(2)和S_ISFIFO做些什么?
可能的重复:http://stackoverflow.com/questions/1312922/detect-if-stdin-is-a-terminal-or-pipe-in-c-c-qt – 2011-03-05 12:09:32