Module Unix.LargeFile

module LargeFile: sig .. end

File operations on large files. This sub-module provides 64-bit variants of the functions Unix.LargeFile.lseek (for positioning a file descriptor), Unix.LargeFile.truncate and Unix.LargeFile.ftruncate (for changing the size of a file), and Unix.LargeFile.stat, Unix.LargeFile.lstat and Unix.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: (Unix.file_descr, int64, Unix.seek_command) => int64;

See lseek.

let truncate: (string, int64) => unit;

See truncate.

let ftruncate: (Unix.file_descr, int64) => unit;

See ftruncate.

type stats = {
   st_dev : int; (*

Device number

*)
   st_ino : int; (*

Inode number

*)
   st_kind : Unix.file_kind; (*

Kind of the file

*)
   st_perm : Unix.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: Unix.file_descr => stats;