[ Stream I/O | Reference Manual | Alphabetic Index ]
Succeeds if the stream Stream is positioned at end of file.
- Integer (stream number) or Atom (reserved or user-defined symbolic stream name).
Used to test if the input stream Stream is positioned at end of file.
Stream can be a symbolic stream name or a physical stream number.
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 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 an integer.
- (192) illegal stream mode
- Stream is an illegal stream mode.
[eclipse]: open(file1,update,s), at_eof(s),
write(s,hello), at(s,5), at_eof(s), close(s).
[eclipse]: 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