<分区>
Possible Duplicate:
Detect if stdin is a terminal or pipe in C/C++/Qt?
假设我们有一个接受标准 C 输入的小程序。
我想知道用户是否正在使用输入重定向,例如:
./programm < in.txt
有没有办法检测程序中这种输入重定向的方式?
<分区>
Possible Duplicate:
Detect if stdin is a terminal or pipe in C/C++/Qt?
假设我们有一个接受标准 C 输入的小程序。
我想知道用户是否正在使用输入重定向,例如:
./programm < in.txt
有没有办法检测程序中这种输入重定向的方式?
最佳答案
没有可移植的方法来做到这一点,因为 C++ 没有说明 cin
的来源。在 Posix 系统上,您可以测试 cin
是来自终端还是使用 isatty
重定向的,像这样:
#include <unistd.h>
if (isatty(STDIN_FILENO)) {
// not redirected
} else {
// redirected
}
关于C++ 检测输入重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8079139/