Windows C++: Как можно сделать редирект stderr для вызова fprintf ?

я упаковки имеющихся C кода из BSD проекта в собственные оболочки и я хочу, чтобы интегрировать его в наш код с минимальным количеством изменений, как это возможно. Этот код использует fprintf печать stderr, чтобы войти / сообщить об ошибке.

я хочу, чтобы перенаправить эту другое место в пределах одного процесса. В Unix я сделал это с socketpair и потока: один конец в гнездо, где я посылаю stderr (через вызов dup2), а другой конец контролируется в потоке, где я могу затем процесс вывода.

Это не работает на windows, хотя, потому что сокет не является тем же, что и дескриптор файла.

Все документы, я нашел на веб-показать, как перенаправление вывода из дочернего процесса, которые не то, что я хочу. Как я могу перенаправить stderr в рамках одного процесса получения какого-либо обратного вызова, когда выход написано? (а раньше ты так говоришь, я попытался SetStdHandle, но не может найти какой-нибудь способ сделать эту работу)...

Найдено 3 ответа:

Windows C++: How can I redirect stderr for calls to fprintf?

http://stackoverflow.com/questions/7664/windows-c-how-can-i-redirect-stderr-for-calls-to-fprintf

Посмотреть решение →