Это зависит от того, что он пишет, и от того, использует ли он блокирующий или неблокирующий ввод-вывод. Обычно он блокируется по умолчанию. Но имейте в виду, что printf
буферизует свой вывод, поэтому вы можете не знать, была ли проблема до тех пор, пока не исчезнет stdout
. Если вы действительно хотите знать, была ли проблема, вы должны проверить возвращаемое значение от fclose
.
Другая возможность заключается в том, что буфер просто не очищается. Обычно stdout
поддерживает буферизацию строки, что означает, что он очищается при записи символа новой строки. Вы можете заставить его сброситься, позвонив fflush(stdout);
, чтобы узнать, не изменилось ли это. Я также предлагаю, чтобы ваш вывод заканчивался символом новой строки.
Я не знаю механизм stdout, поэтому я добавляю этот вопрос. Если я ошибаюсь. пожалуйста, помогите мне поправить – bvp147
@PaulRooney, судя по комментариям ниже, я думаю, что он спрашивает, что произойдет, если программа пишет так много данных, что буфер stdout заполняет –
@Paul Rooney: я обновил свой вопрос для буфера stdout – bvp147