parrotcode: Lua Input/Output Library | |
Contents | Language Implementations | Lua |
lib/luaio.pir - Lua Input/Output Library
The I/O library provides two different styles for file manipulation. The first one uses implicit file descriptors, that is, there are operations to set a default input file and a default output file, and all input/output operations are over those default files. The second style uses explicit file descriptors.
When using implicit file descriptors,
all operations are supplied by table io
.
When using explicit file descriptors,
the operation io.open
returns a file descriptor and then all operations are supplied as methods by the file descriptor (see languages/lua/lib/luafile.pir).
The table io
also provides three predefined file descriptors with their usual meanings from C: io.stdin
,
io.stdout
,
and io.stderr
.
Unless otherwise stated, all I/O functions return nil on failure (plus an error message as a second result) and some value different from nil on success.
See "Lua 5.1 Reference Manual", section 5.7 "Input and Ouput Facilities", http://www.lua.org/manual/5.1/manual.html#5.7.
io.close ([file])
file:close()
.
Without a file
,
closes the default output file.io.flush ()
file:flush
over the default output file.io.input ([file])
io.lines ([filename])
for line in io.lines(filename) do ... end
io.lines()
(without a file name) is equivalent to io.input():lines()
, that is, it iterates over the lines of the default input file. In this case it does not close the file when the loop ends.io.open (filename [, mode])
mode
. It returns a new file handle, or, in case of errors, nil plus an error message.mode
string can be any of the following:mode
string may also have a b
at the end, which is needed in some systems to open the file in binary mode. This string is exactly what is used in the standard C function fopen
.io.output ([file])
io.input
, but operates over the default output file.io.popen ([prog [, mode]])
prog
in a separated process and returns a file handle that you can use to read data from this program (if mode
is "r"
, the default) or to write data to this program (if mode
is "w"
).io.read (format1, ...)
io.input():read
.io.tmpfile ()
io.type (obj)
obj
is a valid file handle. Returns the string "file"
if obj
is an open file handle, "closed file"
if obj
is a closed file handle, and nil if obj
is not a file handle.io.write (value1, ...)
io.output():write
.Francois Perrad.
|