Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
即数据已经由另一个程序提供,或者用户必须手动输入。我的意思是这两种状态:
dir /b /s *.* | myprogram
和
myprogram
在第二种情况下,程序将等待用户输入。有没有办法防止这种情况?
POSIX 有isatty(),而 Visual C++ 有_isatty(),如果文件描述符是终端或命令行(例如isatty(fileno(stdin)).
isatty()
_isatty()
isatty(fileno(stdin))
是的。用于GetStdHandle获取,然后通过调用它来STD_INPUT_HANDLE检查句柄是否属于FILE_TYPE_PIPE第一种情况或 第二种情况。FILE_TYPE_CHARGetFileType
GetStdHandle
STD_INPUT_HANDLE
FILE_TYPE_PIPE
FILE_TYPE_CHAR
GetFileType