local strict = require("strict")
require("luafile_ll")
+--- Create new file object.
function luafile.new()
local f = {}
local meta = { __index = luafile }
return f
end
+--- Open a file.
function luafile.open(path, mode)
local f = luafile.new()
f.file = luafile_ll.fopen(path, mode)
return nil
end
+--- Open a file descriptor.
function luafile.fdopen(fd, mode)
local f = luafile.new()
f.file = luafile_ll.fdopen(fd, mode)
return nil
end
+--- Close a file.
function luafile.close(luafile)
if luafile and luafile.file then
if luafile_ll.fclose(luafile.file) then
return false
end
+--- Read a file.
function luafile.read(luafile)
if luafile and luafile.file then
return luafile_ll.fread(luafile.file)
return nil
end
+--- Write buffer to a file.
function luafile.write(luafile, buffer)
if luafile and luafile.file and buffer then
return luafile_ll.fwrite(luafile.file, buffer)
return nil
end
+--- Read line from a file.
function luafile.readline(luafile)
if luafile and luafile.file then
return luafile_ll.fgets(luafile.file)
return nil
end
+--- Seek in a file.
function luafile.seek(luafile, offset)
if luafile and luafile.file and offset then
return luafile_ll.fseek(luafile.file, offset)
return nil
end
+--- Flush file buffers.
function luafile.flush(luafile)
if luafile and luafile.file then
return luafile_ll.fflush(luafile.file)
return nil
end
+--- Return file descriptor of a file.
function luafile.fileno(luafile)
if luafile and luafile.file then
return luafile_ll.fileno(luafile.file)
return nil
end
+--- Test for end of file.
function luafile.eof(luafile)
if luafile and luafile.file then
return luafile_ll.feof(luafile.file)
return nil
end
+--- Set buffer size used internally.
function luafile.setlinebuf(luafile)
if luafile and luafile.file then
return luafile_ll.setlinebuf(luafile.file)
return nil
end
+--- Create a pipe.
function luafile.pipe()
local rc, r, w = luafile_ll.pipe()
local fr, fw
return rc, fr, fw
end
+--- Duplicate a file descriptor.
function luafile.dup2(oldfd, newfd)
if oldfd and newfd then
return luafile_ll.dup2(oldfd, newfd)