繁体   English   中英

有没有办法检查外部数据是否通过管道传输到程序或程序是否独立运行?

[英]is there a way to check if external data is piped to a program or if program runs on its own?

即数据已由其他程序提供,或者用户必须手动输入。 我指的是这两种状态:

dir /b /s *.* | myprogram

myprogram

在第二种情况下,程序将等待用户输入。 有办法防止这种情况吗?

POSIX具有isatty() ,而Visual C ++具有_isatty() ,如果文件描述符是终端或命令行,则两者都将返回true,例如isatty(fileno(stdin))

是。 使用GetStdHandle得到STD_INPUT_HANDLE ,然后检查手柄类型的FILE_TYPE_PIPE在第一种情况下或FILE_TYPE_CHAR在第二种情况下,通过调用GetFileType就可以了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM