Object Instance nixio.File
+
++ Large File Object. + Large file operations are supported up to 52 bits if the Lua number type is + double (default).
+ + + + + + + +Functions
+File:close () | ++ Close the file descriptor. | +
File:fileno () | ++ Get the number of the filedescriptor. | +
File:lock (command, length) | ++ Apply or test a lock on the file. | +
File:read (length) | ++ Read from a file descriptor. | +
File:seek (offset, whence) | ++ Reposition read / write offset of the file descriptor. | +
File:setblocking (blocking) | ++ (POSIX) Set the blocking mode of the file descriptor. | +
File:stat (field) | ++ Get file status and attributes. | +
File:sync (data_only) | ++ Synchronizes the file with the storage device. | +
File:tell () | ++ Return the current read / write offset of the file descriptor. | +
File:write (buffer, offset, length) | ++ Write to the file descriptor. | +
+
+ + +
Functions
+-
+
+
+
+
- File:close () +
-
+
+ Close the file descriptor.
+
+
+
+
+
+
+
+
Return value:
+true + + + +
+
+
+
+
+ - File:fileno () +
-
+
+ Get the number of the filedescriptor.
+
+
+
+
+
+
+
+
Return value:
+file descriptor number + + + +
+
+
+
+
+ - File:lock (command, length) +
-
+
+ Apply or test a lock on the file.
+
+
+
Parameters
+-
+
+
- + command: Locking Command ["lock", "tlock", "ulock", "test"] + + +
- + length: Amount of Bytes to lock from current offset (optional) + + +
Usage
+-
+
+
- This function calls lockf() on POSIX and _locking() on Windows. + +
- The "lock" command is blocking, "tlock" is non-blocking, + "ulock" unlocks and "test" only tests for the lock. + +
- The "test" command is not available on Windows. + +
- Locks are by default advisory on POSIX, but mandatory on Windows. + +
Return value:
+true + + + +
+
+
+
+
+ - File:read (length) +
-
+
+ Read from a file descriptor.
+
+
+
Parameters
+-
+
+
- + length: Amount of data to read (in Bytes). + + +
Usage
+-
+
+
- Warning: It is not guaranteed that all requested data + is read at once especially when dealing with pipes. + You have to check the return value - the length of the buffer actually read - + or use the safe IO functions in the high-level IO utility module. + +
- The length of the return buffer is limited by the (compile time) + nixio buffersize which is nixio.const.buffersize (8192 by default). + Any read request greater than that will be safely truncated to this value. + +
Return value:
+buffer containing data successfully read + + + +
+
+
+
+
+ - File:seek (offset, whence) +
-
+
+ Reposition read / write offset of the file descriptor.
+ The seek will be done either from the beginning of the file or relative
+ to the current position or relative to the end.
+
+
+
Parameters
+-
+
+
- + offset: File Offset + + +
- + whence: Starting point ["set", "cur", "end"] + + +
Usage:
+This function calls lseek(). + + + +Return value:
+new (absolute) offset position + + + +
+
+
+
+
+ - File:setblocking (blocking) +
-
+
+ (POSIX) Set the blocking mode of the file descriptor.
+
+
+
Parameters
+-
+
+
- + blocking: (boolean) + + +
Return value:
+true + + + +
+
+
+
+
+ - File:stat (field) +
-
+
+ Get file status and attributes.
+
+
+
Parameters
+-
+
+
- + field: Only return a specific field, not the whole table (optional) + + +
Usage:
+This function calls fstat(). + + + +Return value:
+Table containing:-
+
- atime = Last access timestamp +
- blksize = Blocksize (POSIX only) +
- blocks = Blocks used (POSIX only) +
- ctime = Creation timestamp +
- dev = Device ID +
- gid = Group ID +
- ino = Inode +
- modedec = Mode converted into a decimal number +
- modestr = Mode as string as returned by
ls -l
+ - mtime = Last modification timestamp +
- nlink = Number of links +
- rdev = Device ID (if special file) +
- size = Size in bytes +
- type = ["reg", "dir", "chr", "blk", "fifo", "lnk", "sock"] +
- uid = User ID +
+
+
+
+
+ - File:sync (data_only) +
-
+
+ Synchronizes the file with the storage device.
+ Returns when the file is successfully written to the disk.
+
+
+
Parameters
+-
+
+
- + data_only: Do not synchronize the metadata. (optional, boolean) + + +
Usage
+-
+
+
- This function calls fsync() when data_only equals false + otherwise fdatasync(), on Windows _commit() is used instead. + +
- fdatasync() is only supported by Linux and Solaris. For other systems + the data_only parameter is ignored and fsync() is always called. + +
Return value:
+true + + + +
+
+
+
+
+ - File:tell () +
-
+
+ Return the current read / write offset of the file descriptor.
+
+
+
+
+
+
Usage:
+This function calls lseek() with offset 0 from the current position. + + + +Return value:
+offset position + + + +
+
+
+
+
+ - File:write (buffer, offset, length) +
-
+
+ Write to the file descriptor.
+
+
+
Parameters
+-
+
+
- + buffer: Buffer holding the data to be written. + + +
- + offset: Offset to start reading the buffer from. (optional) + + +
- + length: Length of chunk to read from the buffer. (optional) + + +
Usage
+-
+
+
- Warning: It is not guaranteed that all data + in the buffer is written at once especially when dealing with pipes. + You have to check the return value - the number of bytes actually written - + or use the safe IO functions in the high-level IO utility module. + +
- Unlike standard Lua indexing the lowest offset and default is 0. + +
Return value:
+number of bytes written + + + +
+
+
+