Module Core_extended.Extended_unix

val fork_exec : ?⁠stdin:Core.Unix.File_descr.t ‑> ?⁠stdout:Core.Unix.File_descr.t ‑> ?⁠stderr:Core.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.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 stderrstdout and stdin so it's safe to pass in fds with close_on_exec set.

val seteuid : int ‑> unit
val setreuid : uid:int ‑> euid:int ‑> unit
external ntohl : Core.Int32.t ‑> Core.Int32.t = "extended_ml_ntohl"

Network to host order long, like C.

external htonl : Core.Int32.t ‑> Core.Int32.t = "extended_ml_htonl"

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 *)

}
include sig ... end
val statvfs_of_sexp : Base.Sexp.t ‑> statvfs
val sexp_of_statvfs : statvfs ‑> Base.Sexp.t
val bin_statvfs : statvfs Bin_prot.Type_class.t
val bin_read_statvfs : statvfs Bin_prot.Read.reader
val __bin_read_statvfs__ : (int ‑> statvfs) Bin_prot.Read.reader
val bin_reader_statvfs : statvfs Bin_prot.Type_class.reader
val bin_size_statvfs : statvfs Bin_prot.Size.sizer
val bin_write_statvfs : statvfs Bin_prot.Write.writer
val bin_writer_statvfs : statvfs Bin_prot.Type_class.writer
val bin_shape_statvfs : Bin_prot.Shape.t
external statvfs : string ‑> statvfs = "statvfs_stub"

get file system statistics

external getloadavg : unit ‑> float * float * float = "getloadavg_stub"

get load averages

module Extended_passwd : sig ... end
external strptime : fmt:string ‑> string ‑> Core.Unix.tm = "unix_strptime"

The CIDR module moved into Core.Unix

module Inet_port : sig ... end

Simple int wrapper to be explicit about ports.

module Mac_address : sig ... end
module Quota : sig ... end
module Mount_entry : sig ... end
val terminal_width : int Core.Lazy.t