Кажется, что Ruby IO # getc ждет получения \ n, прежде чем возвращать символы.
Если вы попытаетесь запустить этот скрипт:
STDOUT.sync = true
STDIN.sync = true
while data = STDIN.getc
STDOUT.puts "Char arrived"
end
Будет возвращаться один "Прибыл символ" за символ, отправленный на стандартный ввод, но только после того, как будет отправлено \ n.
Кажется, что все символы буферизируются, даже если я напишу STDIN.sync = true.
Кто-нибудь знает, как заставить скрипт печатать "Чар прибыл" сразу после отправки чара в STDIN?