Как я могу использовать один из неопределенных маркеров в моей программе на C на Windows? - PullRequest
1 голос
/ 26 марта 2011

Функция запроса пароля в библиотеке с закрытым исходным кодом, которую я использую в своей программе на C на Windows XP, записывает приглашение в stdout (дескриптор 1) и любые сообщения об ошибках в stderr (дескриптор 2).

Теперь я хочу иметь возможность перенаправить вывод моих функций, которые производит, используя обычные операторы перенаправления.

Согласно это , ручки 3-9 "определяются индивидуально приложением" . Мне кажется, я мог бы использовать один из них в своей программе, а затем использовать обычные операторы перенаправления (например, что-то вроде myprogram.exe 3| otherprogram.exe).

Как я могу сделать это в моем C-коде?

1 Ответ

0 голосов
/ 26 марта 2011

в винде?Ну, если вы используете библиотеку совместимости posix, вы можете использовать «dup2» для принудительного использования дескриптора файла 3. Я не могу обещать, что cmd.exe будет знать, о чем вы говорите.здесь вы видите небольшую зависть к Unix / Linux в Windows.Понятие дескрипторных чисел с маленькими целыми числами является основной вещью Unix / Linux.Это не особенность окон.Тот факт, что cmd.exe знает, что делать с 0, 1 и 2, скорее всего удобен для неуместных программистов оболочки Unix, которые не обобщаются на другие числа.

...