如何解决有没有办法检测输入表单文件重定向? (C++)
我正在制作一个以 3 种方式接收输入的程序:
- 键盘(通过cin)
- 文件(通过 cmd 行给出的参数)
- 和来自文件重定向的输入。
我正在做一个 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。