Extensions to Core.Unix.
val fork_exec : ?stdin:Core.Std.Unix.File_descr.t ->
?stdout:Core.Std.Unix.File_descr.t ->
?stderr:Core.Std.Unix.File_descr.t ->
?path_lookup:bool ->
?env:[ `Extend of (string * string) list | `Replace of (string * string) list ] ->
?working_dir:string ->
?setuid:int -> ?setgid:int -> string -> string list -> Core.Std.Pid.t
fork_exec prog args ~stdin ~stdout ~stderr ~setuid ~setgid forks a new process that executes the program in file prog, with arguments args. The pid of the new process is returned immediately; the new process executes concurrently with the current process.

The function raises EPERM if when using set{gid,uid} and the user id is not 0.

The standard input and outputs of the new process are connected to the descriptors stdin, stdout and stderr.

The close_on_exec flag is cleared from stderr stdout and stdin so it's safe to pass in fds with close_on_exec set.

path_lookup : if true than we use PATH to find the process to exec.
val seteuid : int -> unit
val setreuid : uid:int -> euid:int -> unit
val gettid : unit -> int
val ntohl : Core.Std.Int32.t -> Core.Std.Int32.t
Network to host order long, like C.
val htonl : Core.Std.Int32.t -> Core.Std.Int32.t
Host to network order long, like C.
type statvfs = {
bsize : int;
file system block size
frsize : int;
fragment size
blocks : int;
size of fs in frsize units
bfree : int;
# free blocks
bavail : int;
# free blocks for non-root
files : int;
# inodes
ffree : int;
# free inodes
favail : int;
# free inodes for non-root
fsid : int;
file system ID
flag : int;
mount flags
namemax : int;
maximum filename length
}
val statvfs : string -> statvfs
get file system statistics
val getloadavg : unit -> float * float * float
get load averages
module Extended_passwd : sig .. end
val of_passwd_line : string -> Core.Std.Unix.Passwd.t option
of_passwd_line parse a passwd-like line
val of_passwd_line_exn : string -> Core.Std.Unix.Passwd.t
of_passwd_line_exn parse a passwd-like line
val of_passwd_file : string -> Core.Std.Unix.Passwd.t list option
of_passwd_file parse a passwd-like file
val of_passwd_file_exn : string -> Core.Std.Unix.Passwd.t list
of_passwd_file_exn parse a passwd-like file
val strptime : fmt:string -> string -> Core.Std.Unix.tm
The CIDR module moved into Core.Unix
module Inet_port : sig .. end
Simple int wrapper to be explicit about ports.
type t
val of_int : int -> t option
val of_int_exn : int -> t
val of_string : string -> t option
val of_string_exn : string -> t
val to_int : t -> int
val to_string : t -> string
val t_of_sexp : Sexplib.Sexp.t -> t
val sexp_of_t : t -> Sexplib.Sexp.t
module Mac_address : sig .. end
type t
val equal : t -> t -> bool
val of_string : string -> t
val to_string : t -> string
val to_string_cisco : t -> string
val bin_t : t Core.Std.Bin_prot.Type_class.t
val bin_read_t : t Core.Std.Bin_prot.Read.reader
val __bin_read_t__ : (int -> t) Core.Std.Bin_prot.Read.reader
val bin_reader_t : t Core.Std.Bin_prot.Type_class.reader
val bin_size_t : t Core.Std.Bin_prot.Size.sizer
val bin_write_t : t Core.Std.Bin_prot.Write.writer
val bin_writer_t : t Core.Std.Bin_prot.Type_class.writer
val t_of_sexp : Sexplib.Sexp.t -> t
val sexp_of_t : t -> Sexplib.Sexp.t
module Quota : sig .. end
type bytes = private Core.Std.Int63.t
type inodes = private Core.Std.Int63.t
val bytes : Core.Std.Int63.t -> bytes
val inodes : Core.Std.Int63.t -> inodes
type 'units limit = {
soft : 'units option;
hard : 'units option;
grace : Core.Std.Time.t option;
}
type 'units usage = private 'units
val query : [ `Group | `User ] ->
id:int ->
path:string ->
(bytes limit * bytes usage * inodes limit * inodes usage) Core.Std.Or_error.t
val set : [ `Group | `User ] ->
id:int ->
path:string -> bytes limit -> inodes limit -> unit Core.Std.Or_error.t
val bytes_of_sexp : Sexplib.Sexp.t -> bytes
val sexp_of_bytes : bytes -> Sexplib.Sexp.t
val inodes_of_sexp : Sexplib.Sexp.t -> inodes
val sexp_of_inodes : inodes -> Sexplib.Sexp.t
val limit_of_sexp : (Sexplib.Sexp.t -> 'units) -> Sexplib.Sexp.t -> 'units limit
val sexp_of_limit : ('units -> Sexplib.Sexp.t) -> 'units limit -> Sexplib.Sexp.t
module Mount_entry : sig .. end
type t
val parse_line : string -> t option Core.Std.Or_error.t
val fsname : t -> string
val directory : t -> string
val fstype : t -> string
val options : t -> string
val dump_freq : t -> int option
val fsck_pass : t -> int option
val visible_filesystem : t list -> t Core.Std.String.Map.t
val t_of_sexp : Sexplib.Sexp.t -> t
val sexp_of_t : t -> Sexplib.Sexp.t
val bin_statvfs : statvfs Core.Std.Bin_prot.Type_class.t
val bin_read_statvfs : statvfs Core.Std.Bin_prot.Read.reader
val __bin_read_statvfs__ : (int -> statvfs) Core.Std.Bin_prot.Read.reader
val bin_reader_statvfs : statvfs Core.Std.Bin_prot.Type_class.reader
val bin_size_statvfs : statvfs Core.Std.Bin_prot.Size.sizer
val bin_write_statvfs : statvfs Core.Std.Bin_prot.Write.writer
val bin_writer_statvfs : statvfs Core.Std.Bin_prot.Type_class.writer
val statvfs_of_sexp : Sexplib.Sexp.t -> statvfs
val sexp_of_statvfs : statvfs -> Sexplib.Sexp.t