标签: c freopen
我偶然发现了这个C代码。它使用freopen以二进制模式重新打开stdin:
if (!isatty(STDIN_FILENO)) freopen(NULL, "rb", stdin);
我不明白 isatty 测试的来源。这是否意味着重新开放终端没有意义?
省略isatty测试会有什么问题,留下
freopen(NULL, "rb", stdin);
答案 0 :(得分:0)
isatty()功能为POSIX standard。
isatty()
我想这样做是有意义的,如果你想确保在二进制模式下处理正在读取的文件(通过shell输入重定向,我猜)。