|  | ANSI Common Lisp  21 Streams  21.2 Dictionary of Streams 
 
| 21.2.18  read-char-no-hang | Function |  
 Syntax:
read-char-no-hang
&optional input-stream eof-error-p
			       eof-value recursive-p
   char 
Arguments and Values:
input-stream -- an input stream designator.
 The default is standard input.
eof-error-p - a generalized boolean.
 The default is true.
 
eof-value - an object.
 The default is nil.
 
recursive-p - a generalized boolean.
 The default is false.
 
char - a character or nil or the eof-value.
 
Description:
read-char-no-hang returns a character
from input-stream if such a character is available.  If no character
is available, read-char-no-hang returns nil.
 If recursive-p is true,
this call is expected to be embedded in a higher-level call to read 
or a similar function used by the Lisp reader.
 
If an end of file2 occurs and eof-error-p is false, 
eof-value is returned.  
 
Examples:
;; This code assumes an implementation in which a newline is not
;; required to terminate input from the console.
 (defun test-it ()
   (unread-char (read-char))
   (list (read-char-no-hang) 
         (read-char-no-hang) 
         (read-char-no-hang)))
 TEST-IT
;; Implementation A, where a Newline is not required to terminate
;; interactive input on the console.
 (test-it)  a  (#\a NIL NIL)
;; Implementation B, where a Newline is required to terminate
;; interactive input on the console, and where that Newline remains
;; on the input stream.
 (test-it)  a[Return]  (#\a #\Newline NIL)
Affected By:
*standard-input*,
*terminal-io*.
Exceptional Situations:
If an end of file2 occurs
when eof-error-p is true,
an error of type end-of-file is signaled .
See Also:
listen
Notes:
read-char-no-hang is exactly like read-char, except
that if it would be necessary to wait in order to get a character (as
from a keyboard), nil is immediately returned without waiting.  
Allegro CL Implementation Details:
 None. |