Следующий файл C дает фиктивный результат, когда к нему передается NUL:
int main()
{
printf("_isatty = %d\n", _isatty(0));
}
результат:
C:\Users\Edward\Dev\nulltest> test.exe < NUL
_isatty = 64
Я почти уверен, что NUL (он же / dev / null) не является терминалом устройство! Поэтому мне нужно по-другому определить, соответствует ли дескриптор файла NUL. Число не имеет конкретного значения; Я вижу это, когда на самом деле подключен терминал.
Что мне делать? Этот вопрос предлагает использовать отрывочную недокументированную функцию, чтобы получить основное имя, предположительно сравнивая его с NUL, но это кажется мне не идеальным. Есть ли лучший способ?
PS Это поможет решить эту ошибку GHC .