Поскольку я сейчас настраиваю новый сервер для использования, я использую много программ командной строки, таких как curl
и wget
, и я заметил, что они делают что-то интересное.При запуске в Терминале они печатают свой текущий прогресс на месте (например, 54% станут 55% на месте, вместо 55%, напечатанных на следующей строке - загрузите большой файл, и вы поймете, что я имею в виду).*
Мне было интересно, как программы могут это сделать.Запись в stdout
не является чем-то новым для меня, но я озадачен тем, как что-то подобное будет работать.Я пытался писать в stdout
, затем искать назад и писать снова;печать символов возврата ('\b'
) и печать новых вещей;и т.д., но, похоже, ничего не работает.
Нет ли API в Objective-C или C для этого?(C, например, имеет ungetc()
, но не unputc()
).Есть ли хаки, которые может достичь?
Просто кое-что интересное, о чем я хотел бы узнать больше ...
Спасибо!