2

我偶然发现了这个 C 代码。它使用 freopen 以二进制模式重新打开标准输入:

if (!isatty(STDIN_FILENO))
    freopen(NULL, "rb", stdin);

我不明白isatty测试从何而来。这是否意味着重新打开终端没有意义?

省略 isatty 测试会有什么问题,离开

freopen(NULL, "rb", stdin);
4

1 回答 1

0

isatty()函数是POSIX 标准的。

我想这样做是有意义的,如果您想确保以二进制模式处理正在读取的文件(我认为是通过 shell 输入重定向)。

于 2013-01-28T14:57:15.810 回答