[ruby-talk:00211] Re: Get character with no wait

From: matz@... (Yukihiro Matsumoto)
Date: 1999-01-25 04:17:07 UTC
List: ruby-talk #211
Hi.

In message "[ruby-talk:00210] Get character with no wait"
    on 99/01/24, Gabriel <gabriel@devo.com> writes:

|What is the best way to do a getc without waiting; so I can try to grab
|it in a loop where i am also sending characters (e.g. in an irc program,
|where I am grabbing input from a socket while sending characters from
|the console).  I'd rather not do it with threads in the interest of
|portability, but if it's the best solution, I'd like to know.

I think the easiest way is to use stty, if you are on UNIX.

  begin
    system 'stty -echo'
    loop do
      c = getc()
      ...
    end
  ensure
    system 'stty echo'
  end

I believe this works also on cygwin32.

                                                matz.

In This Thread