response_data
, вероятно, не NUL ('\0'
) завершено, поэтому printf
продолжается после конца строки. Или, возможно, он содержит директиву %
, но printf
не может найти дополнительные аргументы.
Вместо этого укажите printf
, как далеко читать, а , а не , чтобы интерпретировать любые директивы %
в строке.
printf("%.*s", total_read, response_data);
Обратите внимание, что если response_data
содержит встроенный NUL, printf
остановится там, даже если total_read
длиннее.