read-char-no-hang (original) (raw)
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 reador a similar function used by the Lisp reader.
If an _end of file_2 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 file_2 occurs when eof-error-p is true, an error of type end-of-file is signaled .
See Also:
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.