Я использую библиотеку, которая печатает предупреждающее сообщение на cout или cerr. Я не хочу, чтобы это предупреждающее сообщение достигло вывода моей программы. Как я могу поймать этот вывод и поместить его в /dev/null или аналогичный?
MWE:
#include <iostream>
void foo()
{
std::cout << "Boring message. " << std::endl;
};
int main()
{
foo();
std::cout << "Interesting message." << std::endl;
return 0;
}
Выход должен быть:
Interesting message.
Как мне изменить main, чтобы получить желаемый результат? (foo не следует изменять.)
Я попытался использовать freopen() и fclose(stdout), как было предложено в этом вопросе Как перенаправить stdout на какой-либо видимый экран в приложении Windows?. В результате ничего не печатается.