即数据已由其他程序提供,或者用户必须手动输入。 我的意思是这两种状态:
dir /b /s *.* | myprogram
和
myprogram
在第二种情况下,程序将等待用户输入。有没有办法防止这种情况?
答案 0 :(得分:6)
POSIX具有isatty()
,而Visual C ++具有_isatty()
,如果文件描述符是终端或命令行,则两者都将返回true。 isatty(fileno(stdin))
。
答案 1 :(得分:3)
是。使用GetStdHandle
获取STD_INPUT_HANDLE
,然后通过调用FILE_TYPE_PIPE
检查句柄在第一种情况下是FILE_TYPE_CHAR
类型,还是在第二种情况下GetFileType
在它上面。