[prev in list] [next in list] [prev in thread] [next in thread]
List: openmcl-devel
Subject: Re: [Openmcl-devel] Quick Query...
From: Gary Byers <gb () clozure ! com>
Date: 2004-11-11 14:55:14
Message-ID: 20041111073630.X53615 () clozure ! com
[Download RAW message or body]
On Thu, 11 Nov 2004, Doug Philips wrote:
> Hey all,
> I'm at a loss for where to look to find out
> how I can do non-blocking I/O, esp. how I can put "stdin" (the keyboard) into \
> unbuffered/raw mode (from the command line, I'm not interested in writing GUI code, \
> just not having to wait for a return/enter to get character input)... having \
> grunged over the docs and having been unable to formulate a google query with \
> useful results... Can anyone give me a quick URL, pointer, ? Thanks,
> Doug
>
There's some code for manipulating TTY modes in "ccl:library;pty.lisp".
? (require "PTY")
? (ccl::disable-tty-local-modes 0 #$ICANON)
T
will turn off "input canonicalization" on file descriptor 0, which is
at least part of what you need to do here. (That basically turns off
the line-buffering/line-editing that the OS does.)
(Of course, that only has an effect if the file descriptor is a TTY/PTY
device.)
If the #$ICANON mode is disabled, you can do things like:
? (progn (read-char) (read-char))
a
#\a
(where the first READ-CHAR consumes the newline, which isn't really
necessary to make the reader happy anymore.) So, you can do:
? (read-char)
#\Space
(where there's a space after the close-paren) without having to type
a newline.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic