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