sig type error = E2BIG |EACCES |EAGAIN |EBADF |EBUSY |ECHILD |EDEADLK |EDOM |EEXIST |EFAULT |EFBIG |EINTR |EINVAL |EIO |EISDIR |EMFILE |EMLINK |ENAMETOOLONG |ENFILE |ENODEV |ENOENT |ENOEXEC |ENOLCK |ENOMEM |ENOSPC |ENOSYS |ENOTDIR |ENOTEMPTY |ENOTTY |ENXIO |EPERM |EPIPE |ERANGE |EROFS |ESPIPE |ESRCH |EXDEV |EWOULDBLOCK |EINPROGRESS |EALREADY |ENOTSOCK |EDESTADDRREQ |EMSGSIZE |EPROTOTYPE |ENOPROTOOPT |EPROTONOSUPPORT |ESOCKTNOSUPPORT |EOPNOTSUPP |EPFNOSUPPORT |EAFNOSUPPORT |EADDRINUSE |EADDRNOTAVAIL |ENETDOWN |ENETUNREACH |ENETRESET |ECONNABORTED |ECONNRESET |ENOBUFS |EISCONN |ENOTCONN |ESHUTDOWN |ETOOMANYREFS |ETIMEDOUT |ECONNREFUSED |EHOSTDOWN |EHOSTUNREACH |ELOOP |EOVERFLOW |EUNKNOWNERRof int exceptionUnix_errorofUnix.error * string * string val error_message : Unix.error -> string val handle_unix_error : ('a ->'b) ->'a ->'b val environment : unit -> string array val getenv : string -> string val putenv : string -> string -> unit type process_status = WEXITEDof int |WSIGNALEDof int |WSTOPPEDof int and wait_flag = WNOHANG|WUNTRACED val execv : string -> string array -> unit val execve : string -> string array -> string array -> unit val execvp : string -> string array -> unit val execvpe : string -> string array -> string array -> unit val fork : unit -> int val wait : unit -> int * Unix.process_status val waitpid : Unix.wait_flag list -> int -> int * Unix.process_status val system : string ->Unix.process_status val getpid : unit -> int val getppid : unit -> int val nice : int -> int type file_descr val stdin : Unix.file_descr val stdout : Unix.file_descr val stderr : Unix.file_descr type open_flag = O_RDONLY |O_WRONLY |O_RDWR |O_NONBLOCK |O_APPEND |O_CREAT |O_TRUNC |O_EXCL |O_NOCTTY |O_DSYNC |O_SYNC |O_RSYNC and file_perm = int val openfile :
string ->Unix.open_flag list ->Unix.file_perm ->Unix.file_descr val close : Unix.file_descr -> unit val read : Unix.file_descr -> string -> int -> int -> int val write : Unix.file_descr -> string -> int -> int -> int val in_channel_of_descr : Unix.file_descr ->Pervasives.in_channel val out_channel_of_descr : Unix.file_descr ->Pervasives.out_channel val descr_of_in_channel : Pervasives.in_channel ->Unix.file_descr val descr_of_out_channel : Pervasives.out_channel ->Unix.file_descr type seek_command = SEEK_SET|SEEK_CUR|SEEK_END val lseek : Unix.file_descr -> int ->Unix.seek_command -> int val truncate : string -> int -> unit val ftruncate : Unix.file_descr -> int -> unit type file_kind = S_REG|S_DIR|S_CHR|S_BLK|S_LNK|S_FIFO|S_SOCK and stats = {
st_dev : int;
st_ino : int;
st_kind : Unix.file_kind;
st_perm : Unix.file_perm;
st_nlink : int;
st_uid : int;
st_gid : int;
st_rdev : int;
st_size : int;
st_atime : float;
st_mtime : float;
st_ctime : float;
} val stat : string ->Unix.stats val lstat : string ->Unix.stats val fstat : Unix.file_descr ->Unix.stats moduleLargeFile : sig val lseek : Unix.file_descr -> int64 ->Unix.seek_command -> int64 val truncate : string -> int64 -> unit val ftruncate : Unix.file_descr -> int64 -> unit type stats = {
st_dev : int;
st_ino : int;
st_kind : Unix.file_kind;
st_perm : Unix.file_perm;
st_nlink : int;
st_uid : int;
st_gid : int;
st_rdev : int;
st_size : int64;
st_atime : float;
st_mtime : float;
st_ctime : float;
} val stat : string ->Unix.LargeFile.stats val lstat : string ->Unix.LargeFile.stats val fstat : Unix.file_descr ->Unix.LargeFile.stats end val unlink : string -> unit val rename : string -> string -> unit val link : string -> string -> unit type access_permission = R_OK|W_OK|X_OK|F_OK val chmod : string ->Unix.file_perm -> unit val fchmod : Unix.file_descr ->Unix.file_perm -> unit val chown : string -> int -> int -> unit val fchown : Unix.file_descr -> int -> int -> unit val umask : int -> int val access : string ->Unix.access_permission list -> unit val dup : Unix.file_descr ->Unix.file_descr val dup2 : Unix.file_descr ->Unix.file_descr -> unit val set_nonblock : Unix.file_descr -> unit val clear_nonblock : Unix.file_descr -> unit val set_close_on_exec : Unix.file_descr -> unit val clear_close_on_exec : Unix.file_descr -> unit val mkdir : string ->Unix.file_perm -> unit val rmdir : string -> unit val chdir : string -> unit val getcwd : unit -> string val chroot : string -> unit type dir_handle val opendir : string ->Unix.dir_handle val readdir : Unix.dir_handle -> string val rewinddir : Unix.dir_handle -> unit val closedir : Unix.dir_handle -> unit val pipe : unit ->Unix.file_descr * Unix.file_descr val mkfifo : string ->Unix.file_perm -> unit val create_process :
string ->
string array -> Unix.file_descr ->Unix.file_descr ->Unix.file_descr -> int val create_process_env :
string ->
string array ->
string array -> Unix.file_descr ->Unix.file_descr ->Unix.file_descr -> int val open_process_in : string ->Pervasives.in_channel val open_process_out : string ->Pervasives.out_channel val open_process : string ->Pervasives.in_channel * Pervasives.out_channel val open_process_full :
string ->
string array -> Pervasives.in_channel * Pervasives.out_channel * Pervasives.in_channel val close_process_in : Pervasives.in_channel ->Unix.process_status val close_process_out : Pervasives.out_channel ->Unix.process_status val close_process : Pervasives.in_channel * Pervasives.out_channel ->Unix.process_status val close_process_full : Pervasives.in_channel * Pervasives.out_channel * Pervasives.in_channel -> Unix.process_status val symlink : string -> string -> unit val readlink : string -> string val select : Unix.file_descr list -> Unix.file_descr list -> Unix.file_descr list ->
float -> Unix.file_descr list * Unix.file_descr list * Unix.file_descr list type lock_command = F_ULOCK |F_LOCK |F_TLOCK |F_TEST |F_RLOCK |F_TRLOCK val lockf : Unix.file_descr ->Unix.lock_command -> int -> unit val kill : int -> int -> unit type sigprocmask_command = SIG_SETMASK|SIG_BLOCK|SIG_UNBLOCK val sigprocmask : Unix.sigprocmask_command -> int list -> int list val sigpending : unit -> int list val sigsuspend : int list -> unit val pause : unit -> unit type process_times = {
tms_utime : float;
tms_stime : float;
tms_cutime : float;
tms_cstime : float;
} and tm = {
tm_sec : int;
tm_min : int;
tm_hour : int;
tm_mday : int;
tm_mon : int;
tm_year : int;
tm_wday : int;
tm_yday : int;
tm_isdst : bool;
} val time : unit -> float val gettimeofday : unit -> float val gmtime : float ->Unix.tm val localtime : float ->Unix.tm val mktime : Unix.tm -> float * Unix.tm val alarm : int -> int val sleep : int -> unit val times : unit ->Unix.process_times val utimes : string -> float -> float -> unit type interval_timer = ITIMER_REAL|ITIMER_VIRTUAL|ITIMER_PROF and interval_timer_status = { it_interval : float; it_value : float; } val getitimer : Unix.interval_timer ->Unix.interval_timer_status val setitimer : Unix.interval_timer -> Unix.interval_timer_status ->Unix.interval_timer_status val getuid : unit -> int val geteuid : unit -> int val setuid : int -> unit val getgid : unit -> int val getegid : unit -> int val setgid : int -> unit val getgroups : unit -> int array type passwd_entry = {
pw_name : string;
pw_passwd : string;
pw_uid : int;
pw_gid : int;
pw_gecos : string;
pw_dir : string;
pw_shell : string;
} and group_entry = {
gr_name : string;
gr_passwd : string;
gr_gid : int;
gr_mem : string array;
} val getlogin : unit -> string val getpwnam : string ->Unix.passwd_entry val getgrnam : string ->Unix.group_entry val getpwuid : int ->Unix.passwd_entry val getgrgid : int ->Unix.group_entry type inet_addr val inet_addr_of_string : string ->Unix.inet_addr val string_of_inet_addr : Unix.inet_addr -> string val inet_addr_any : Unix.inet_addr type socket_domain = PF_UNIX|PF_INET and socket_type = SOCK_STREAM|SOCK_DGRAM|SOCK_RAW|SOCK_SEQPACKET and sockaddr = ADDR_UNIXof string |ADDR_INETofUnix.inet_addr * int val socket : Unix.socket_domain ->Unix.socket_type -> int ->Unix.file_descr val socketpair : Unix.socket_domain -> Unix.socket_type -> int ->Unix.file_descr * Unix.file_descr val accept : Unix.file_descr ->Unix.file_descr * Unix.sockaddr val bind : Unix.file_descr ->Unix.sockaddr -> unit val connect : Unix.file_descr ->Unix.sockaddr -> unit val listen : Unix.file_descr -> int -> unit type shutdown_command = SHUTDOWN_RECEIVE|SHUTDOWN_SEND|SHUTDOWN_ALL val shutdown : Unix.file_descr ->Unix.shutdown_command -> unit val getsockname : Unix.file_descr ->Unix.sockaddr val getpeername : Unix.file_descr ->Unix.sockaddr type msg_flag = MSG_OOB|MSG_DONTROUTE|MSG_PEEK val recv : Unix.file_descr -> string -> int -> int ->Unix.msg_flag list -> int val recvfrom : Unix.file_descr ->
string -> int -> int ->Unix.msg_flag list -> int * Unix.sockaddr val send : Unix.file_descr -> string -> int -> int ->Unix.msg_flag list -> int val sendto : Unix.file_descr ->
string -> int -> int ->Unix.msg_flag list ->Unix.sockaddr -> int type socket_bool_option = SO_DEBUG |SO_BROADCAST |SO_REUSEADDR |SO_KEEPALIVE |SO_DONTROUTE |SO_OOBINLINE |SO_ACCEPTCONN and socket_int_option = SO_SNDBUF |SO_RCVBUF |SO_ERROR |SO_TYPE |SO_RCVLOWAT |SO_SNDLOWAT and socket_optint_option = SO_LINGER and socket_float_option = SO_RCVTIMEO|SO_SNDTIMEO val getsockopt : Unix.file_descr ->Unix.socket_bool_option -> bool val setsockopt : Unix.file_descr ->Unix.socket_bool_option -> bool -> unit external getsockopt_int : Unix.file_descr ->Unix.socket_int_option -> int
= "unix_getsockopt_int" external setsockopt_int : Unix.file_descr ->Unix.socket_int_option -> int -> unit
= "unix_setsockopt_int" external getsockopt_optint : Unix.file_descr ->Unix.socket_optint_option -> int option
= "unix_getsockopt_optint" external setsockopt_optint : Unix.file_descr ->Unix.socket_optint_option -> int option -> unit
= "unix_setsockopt_optint" external getsockopt_float : Unix.file_descr ->Unix.socket_float_option -> float
= "unix_getsockopt_float" external setsockopt_float : Unix.file_descr ->Unix.socket_float_option -> float -> unit
= "unix_setsockopt_float" val open_connection : Unix.sockaddr ->Pervasives.in_channel * Pervasives.out_channel val shutdown_connection : Pervasives.in_channel -> unit val establish_server :
(Pervasives.in_channel ->Pervasives.out_channel -> unit) -> Unix.sockaddr -> unit type host_entry = {
h_name : string;
h_aliases : string array;
h_addrtype : Unix.socket_domain;
h_addr_list : Unix.inet_addr array;
} and protocol_entry = {
p_name : string;
p_aliases : string array;
p_proto : int;
} and service_entry = {
s_name : string;
s_aliases : string array;
s_port : int;
s_proto : string;
} val gethostname : unit -> string val gethostbyname : string ->Unix.host_entry val gethostbyaddr : Unix.inet_addr ->Unix.host_entry val getprotobyname : string ->Unix.protocol_entry val getprotobynumber : int ->Unix.protocol_entry val getservbyname : string -> string ->Unix.service_entry val getservbyport : int -> string ->Unix.service_entry type terminal_io = { mutable c_ignbrk : bool; mutable c_brkint : bool; mutable c_ignpar : bool; mutable c_parmrk : bool; mutable c_inpck : bool; mutable c_istrip : bool; mutable c_inlcr : bool; mutable c_igncr : bool; mutable c_icrnl : bool; mutable c_ixon : bool; mutable c_ixoff : bool; mutable c_opost : bool; mutable c_obaud : int; mutable c_ibaud : int; mutable c_csize : int; mutable c_cstopb : int; mutable c_cread : bool; mutable c_parenb : bool; mutable c_parodd : bool; mutable c_hupcl : bool; mutable c_clocal : bool; mutable c_isig : bool; mutable c_icanon : bool; mutable c_noflsh : bool; mutable c_echo : bool; mutable c_echoe : bool; mutable c_echok : bool; mutable c_echonl : bool; mutable c_vintr : char; mutable c_vquit : char; mutable c_verase : char; mutable c_vkill : char; mutable c_veof : char; mutable c_veol : char; mutable c_vmin : int; mutable c_vtime : int; mutable c_vstart : char; mutable c_vstop : char;
} val tcgetattr : Unix.file_descr ->Unix.terminal_io type setattr_when = TCSANOW|TCSADRAIN|TCSAFLUSH val tcsetattr : Unix.file_descr ->Unix.setattr_when ->Unix.terminal_io -> unit val tcsendbreak : Unix.file_descr -> int -> unit val tcdrain : Unix.file_descr -> unit type flush_queue = TCIFLUSH|TCOFLUSH|TCIOFLUSH val tcflush : Unix.file_descr ->Unix.flush_queue -> unit type flow_action = TCOOFF|TCOON|TCIOFF|TCION val tcflow : Unix.file_descr ->Unix.flow_action -> unit val setsid : unit -> int