reads one newline-terminated line from a file or pipe - Maple Help

Online Help

All Products    Maple    MapleSim

Home : Support : Online Help : Programming : Input and Output : Input : readline

readline - reads one newline-terminated line from a file or pipe

Calling Sequence






file descriptor or file name



The readline function attempts to read the next line from the specified file.


The readline function returns a string consisting of the line read from the file. The newline character at the end of the line is removed before returning the string.


If there are no more lines left to read, readline returns 0 instead of a string to indicate that the end of the file has been reached. If the file was specified as a file name, it is automatically closed at this point.


The call readline(default) reads a line from the current input stream. If readline(default) is typed at the top level, the next line typed will be read by readline instead of by the Maple parser. If readline is executed while file read is active, readline reads the next line of the file (the one following the call to readline).


The call readline(terminal) reads a line from the top level input stream. If Maple is being run interactively, any call to readline(terminal) will read a line from the user, even if a file read is in effect. If Maple is being run in batch mode (for example, using < for command line redirection) then readline(terminal) reads from the batch input file, even if a file read is in effect, since there is no user.


If a file name is given, and that file is not yet open, it is opened in READ mode with type TEXT.


The call readline(-1) is similar to readline(default), except that the Maple input preprocessor is invoked. Lines beginning with "!" are executed as operating system commands and lines beginning with  "?" are translated as calls to the help function.  Also, the readline(-1) command reads from the next prompt, while the readline(default) command opens a dialog for input.


For backwards compatibility, readline() is equivalent to readline(default).

Thread Safety


The readline command is thread safe as of Maple 15.


Parallel calls to file i/o commands on the same file descriptor will be serialized in an arbitrary order.  If you need the commands to execute in a particular order you must use Maple's synchronization tools to enforce this.  See Threads:-Mutex.


For more information on thread safety, see index/threadsafe.


Get only the first and last lines of a file called "infile.text". NOTE: This example will only work if you have the "infile.text" file.



whileline0dolast:=line&semi;line:=readlineinfile.textend do

See Also

file_types, fscanf, IO_errors, parse, readbytes, writeline

Download Help Document

Was this information helpful?

Please add your Comment (Optional)
E-mail Address (Optional)
What is ? This question helps us to combat spam