我想在某些条件下构建一个可能停止并提示输入的控制台应用程序。但我想提示只有输入可用。
有没有办法知道Stdin是否与任何东西相连?
我认为powershell是这样做的,我想做类似的事情。 Powershell会检测它何时以交互方式运行,并提示何时为真。我认为也可以强制PowerShell进入非交互模式。 (如果我错了,请纠正我)
我想我认为有几种可能性,包括但不限于:
控制台应用程序是否可以区分这些情况并相应地修改行为?
答案 0 :(得分:3)
查看GetStdHandle API。如果应用程序没有关联的stdin,则调用GetStdHandle(STD_INPUT_HANDLE)
将返回NULL。
答案 1 :(得分:1)
我不确定是否检查stdin的可用性,但可能的选择是接受命令行参数(如--noprompt
或其他)并在非交互式环境中执行时使用它。