[ Stream I/O | Reference Manual | Alphabetic Index ]
Succeeds if the stream Stream is positioned at end of file.
- Stream handle or alias (atom)
Used to test if the input stream Stream is positioned at end of file.
Stream can be a symbolic stream name or a stream handle.
For file streams and string streams, this means that either the next read
operation will return an end-of-file condition, or end-of-file was already
read and the next read operation would result in a past-end-of-file error.
For tty streams, it means only that there is currently no further input
available, and a subsequent read operation will prompt for more.
For queue streams, it means only that the queue is currently empty.
The queue will recover from the end-of-file condition when new data
is written into it from the write end.
For pipe and socket streams, this condition means that the next read
operation will either block or return an end-of-file condition.
To check whether there is any data to read, use stream_select/3.
The null stream is always at end-of-file.
Modes and Determinism
Fails if Stream is a file with its pointer not at end of file.
- (4) instantiation fault
- Stream is not instantiated.
- (5) type error
- Stream is instantiated, but not to an atom or a stream handle.
- (192) illegal stream mode
- Stream is an illegal stream mode.
?- open(file1,update,S), at_eof(S),
write(S,hello), at(S,5), at_eof(S), close(S).
?- open(file1,write,S),write(S,hello), close(S),
open(file1,read,S), at_eof(S), close(S).
at_eof(X). (Error 4).
at_eof("s"). (Error 5).
at_eof(not_a_stream). (Error 192).
at / 2, seek / 2, stream_truncate / 1