Module Unix_ext


module Unix_ext: sig .. end
Interface to additional Unix-system calls


Utility functions


val unix_error : int -> string -> string -> 'a
val mknod : ?file_kind:Unix.file_kind ->
?perm:int -> ?major:int -> ?minor:int -> string -> unit

I/O vectors


module IOVec: sig .. end
I/O-vectors for scatter/gather-operations

I/O functions


val int_of_file_descr : Unix.file_descr -> int
int_of_file_descr fd converts file descriptor fd to the internal integer value.
val file_descr_of_int : int -> Unix.file_descr
file_descr_of_int n converts an integer to a file descriptor.
val dirfd : Unix.dir_handle -> Unix.file_descr
Extract a file descriptor from a directory handle.
val sync : unit -> unit
Synchronize all filesystem buffers with disk.
val fsync : Unix.file_descr -> unit
Synchronize the kernel buffers of a given file descriptor with disk.
val fdatasync : Unix.file_descr -> unit
Synchronize the kernel buffers of a given file descriptor with disk, but do not necessarily write file attributes.
val readdir_ino : Unix.dir_handle -> string * int
readdir_ino dh return the next entry in a directory (((filename, inode)).
Raises End_of_file when the end of the directory has been reached.
val read_assume_nonblocking : Unix.file_descr -> ?pos:int -> ?len:int -> string -> int
val write_assume_nonblocking : Unix.file_descr -> ?pos:int -> ?len:int -> string -> int
val writev_assume_nonblocking : Unix.file_descr -> ?count:int -> string IOVec.t array -> int
val pselect : Unix.file_descr list ->
Unix.file_descr list ->
Unix.file_descr list ->
float ->
int list ->
Unix.file_descr list * Unix.file_descr list * Unix.file_descr list
pselect rfds wfds efds timeout sigmask like Unix.select but also allows one to wait for the arrival of signals.

Clock functions


type clock 
Type of Unix-clocks
val clock_gettime : clock -> float
val clock_settime : clock -> float -> unit
val clock_getres : clock -> float
val pthread_getcpuclockid : Thread.t -> clock
module RLimit: sig .. end
val getrlimit : RLimit.resource -> RLimit.t
val setrlimit : RLimit.resource -> RLimit.t -> unit
module RUsage: sig .. end
Resource usage
val getrusage : RUsage.who -> RUsage.t

System configuration



type sysconf =
| ARG_MAX
| CHILD_MAX
| HOST_NAME_MAX
| LOGIN_NAME_MAX
| OPEN_MAX
| PAGESIZE
| RE_DUP_MAX
| STREAM_MAX
| SYMLOOP_MAX
| TTY_NAME_MAX
| TZNAME_MAX
| POSIX_VERSION
| PHYS_PAGES
| AVPHYS_PAGES
| IOV_MAX
val sysconf : sysconf -> int64

POSIX thread functions


val mutex_timedlock : Mutex.t -> float -> bool
mutex_timedlock mtx timeout tries to lock mtx, but returns once timeout expires. Note that timeout is an absolute Unix-time to prevent time-related race conditions.
Returns false iff the timer expired without the lock being acquired. See man pthread_mutex_timedlock for details.
val condition_timedwait : Condition.t -> Mutex.t -> float -> bool
condition_timedwait cnd mtx timeout waits on condition variable cond with mutex mtx until either the condition is signalled, or until timeout expires. Note that timeout is an absolute Unix-time to prevent time-related race conditions.
Returns false iff the timer expired, but this does not mean that the condition is not true due to an unavoidable race condition in the system call. See man pthread_cond_timedwait for details.

Pathname resolution


val realpath : string -> string
realpath path
Raises Unix_error on errors.
Returns the canonicalized absolute pathname of path.

Temp dir creation


val mkdtemp : string -> string
mkdtemp pattern pattern must end with XXXXXX. Will replace XXXXXX with unique characters and create a new directory with the generated name.
Raises Unix_error on errors.

Signal handling


val abort : unit -> 'a

User id, group id


val initgroups : string -> int -> unit