module LargeFile: sig .. end
File operations on large files.
This sub-module provides 64-bit variants of the functions
UnixLabels.LargeFile.lseek
(for positioning a file descriptor),
UnixLabels.LargeFile.truncate
and UnixLabels.LargeFile.ftruncate
(for changing the size of a file),
and UnixLabels.LargeFile.stat
, UnixLabels.LargeFile.lstat
and UnixLabels.LargeFile.fstat
(for obtaining information on files). These alternate functions represent
positions and sizes by 64-bit integers (type int64
) instead of
regular integers (type int
), thus allowing operating on files
whose sizes are greater than max_int
.
let lseek:
(UnixLabels.file_descr, int64, ~mode: UnixLabels.seek_command) => int64;
See lseek
.
let truncate: (string, ~len: int64) => unit;
See truncate
.
let ftruncate: (UnixLabels.file_descr, ~len: int64) => unit;
See ftruncate
.
type stats = Unix.LargeFile.stats = {
|
st_dev : int; |
(* | Device number | *) |
|
st_ino : int; |
(* | Inode number | *) |
|
st_kind : UnixLabels.file_kind; |
(* | Kind of the file | *) |
|
st_perm : UnixLabels.file_perm; |
(* | Access rights | *) |
|
st_nlink : int; |
(* | Number of links | *) |
|
st_uid : int; |
(* | User id of the owner | *) |
|
st_gid : int; |
(* | Group ID of the file's group | *) |
|
st_rdev : int; |
(* | Device ID (if special file) | *) |
|
st_size : int64; |
(* | Size in bytes | *) |
|
st_atime : float; |
(* | Last access time | *) |
|
st_mtime : float; |
(* | Last modification time | *) |
|
st_ctime : float; |
(* | Last status change time | *) |
}
let stat: string => stats;
let lstat: string => stats;
let fstat: UnixLabels.file_descr => stats;