有没有办法检测输入表单文件重定向? (C++)

Is there a way to detect input form file redirection? (C++)

我正在制作一个以 3 种方式接收输入的程序:

我正在做一个 if-else 语句,其中第一部分测试 cmd 行是否有 arg,如果没有给出文件则测试 else。现在我只是想找出如何制作一个 if 语句来检测输入是否来自文件重定向。谢谢

我正在尝试做的事情的例子:

if(argc > 1) {
    //process file
}
else if(/*test for file redirect*/){
    //process input from file redirect
}
else {
    //process standard input
}

在 Linux(以及大多数其他 Unix 风格的)系统上,您可以:

#include <unistd.h>
bool stdin_is_redirected = isatty (0) == 0;

这依赖于 stdin 是文件描述符 0 的事实。

文档here