Если вы измените stdout
по назначению, а не с помощью инструмента, обозначенного (в C, freopen()
, как сказал Адам Розенфилд, - и, соответственно, в C ++), тогда вы оставите себя открытым для всех видов обязательств.
- Не ясно, что
cout
также будет перенаправлено.
- Скорее всего, у вас будет утечка файлового дескриптора (что может не иметь значения).
- Возможно, вы не удалили исходный стандартный поток должным образом - потеря информации.
- Возможно, утечка памяти связана с указателем исходного файла (что опять-таки может не иметь значения).
- Если что-то закрывается
pf
, то вы несете ответственность за двойные ошибки (сбои).
Гораздо лучше выполнять работу чисто.
(Демонстрационный код не обязательно написан или даже проверен наиболее опытными людьми из команды разработчиков кода. Если он выглядит сомнительным, это может быть вызвано тем, что он сомнительный.)