summaryrefslogtreecommitdiffstats
path: root/otherlibs/win32unix/unix.mli
diff options
context:
space:
mode:
Diffstat (limited to 'otherlibs/win32unix/unix.mli')
-rw-r--r--otherlibs/win32unix/unix.mli662
1 files changed, 0 insertions, 662 deletions
diff --git a/otherlibs/win32unix/unix.mli b/otherlibs/win32unix/unix.mli
deleted file mode 100644
index e1facd844..000000000
--- a/otherlibs/win32unix/unix.mli
+++ /dev/null
@@ -1,662 +0,0 @@
-(***********************************************************************)
-(* *)
-(* Objective Caml *)
-(* *)
-(* Xavier Leroy and Pascal Cuoq, projet Cristal, INRIA Rocquencourt *)
-(* *)
-(* Copyright 1996 Institut National de Recherche en Informatique et *)
-(* Automatique. Distributed only by permission. *)
-(* *)
-(***********************************************************************)
-
-(* $Id$ *)
-
-(* Module [Unix]: Unix-like system calls for Win32 *)
-
-(*** Error report *)
-
-type error =
- (* Errors defined in the POSIX standard *)
- E2BIG (* Argument list too long *)
- | EACCESS (* Permission denied *)
- | EAGAIN (* Resource temporarily unavailable; try again *)
- | EBADF (* Bad file descriptor *)
- | EBUSY (* Resource unavailable *)
- | ECHILD (* No child process *)
- | EDEADLK (* Resource deadlock would occur *)
- | EDOM (* Domain error for math functions, etc. *)
- | EEXIST (* File exists *)
- | EFAULT (* Bad address *)
- | EFBIG (* File too large *)
- | EINTR (* Function interrupted by signal *)
- | EINVAL (* Invalid argument *)
- | EIO (* Hardware I/O error *)
- | EISDIR (* Is a directory *)
- | EMFILE (* Too many open files by the process *)
- | EMLINK (* Too many links *)
- | ENAMETOOLONG (* Filename too long *)
- | ENFILE (* Too many open files in the system *)
- | ENODEV (* No such device *)
- | ENOENT (* No such file or directory *)
- | ENOEXEC (* Not an executable file *)
- | ENOLCK (* No locks available *)
- | ENOMEM (* Not enough memory *)
- | ENOSPC (* No space left on device *)
- | ENOSYS (* Function not supported *)
- | ENOTDIR (* Not a directory *)
- | ENOTEMPTY (* Directory not empty *)
- | ENOTTY (* Inappropriate I/O control operation *)
- | ENXIO (* No such device or address *)
- | EPERM (* Operation not permitted *)
- | EPIPE (* Broken pipe *)
- | ERANGE (* Result too large *)
- | EROFS (* Read-only file system *)
- | ESPIPE (* Invalid seek e.g. on a pipe *)
- | ESRCH (* No such process *)
- | EXDEV (* Invalid link *)
- (* Additional errors, mostly BSD *)
- | EWOULDBLOCK (* Operation would block *)
- | EINPROGRESS (* Operation now in progress *)
- | EALREADY (* Operation already in progress *)
- | ENOTSOCK (* Socket operation on non-socket *)
- | EDESTADDRREQ (* Destination address required *)
- | EMSGSIZE (* Message too long *)
- | EPROTOTYPE (* Protocol wrong type for socket *)
- | ENOPROTOOPT (* Protocol not available *)
- | EPROTONOSUPPORT (* Protocol not supported *)
- | ESOCKTNOSUPPORT (* Socket type not supported *)
- | EOPNOTSUPP (* Operation not supported on socket *)
- | EPFNOSUPPORT (* Protocol family not supported *)
- | EAFNOSUPPORT (* Address family not supported by protocol family *)
- | EADDRINUSE (* Address already in use *)
- | EADDRNOTAVAIL (* Can't assign requested address *)
- | ENETDOWN (* Network is down *)
- | ENETUNREACH (* Network is unreachable *)
- | ENETRESET (* Network dropped connection on reset *)
- | ECONNABORTED (* Software caused connection abort *)
- | ECONNRESET (* Connection reset by peer *)
- | ENOBUFS (* No buffer space available *)
- | EISCONN (* Socket is already connected *)
- | ENOTCONN (* Socket is not connected *)
- | ESHUTDOWN (* Can't send after socket shutdown *)
- | ETOOMANYREFS (* Too many references: can't splice *)
- | ETIMEDOUT (* Connection timed out *)
- | ECONNREFUSED (* Connection refused *)
- | EHOSTDOWN (* Host is down *)
- | EHOSTUNREACH (* No route to host *)
- | ELOOP (* Too many levels of symbolic links *)
- (* All other errors are mapped to EUNKNOWNERR *)
- | EUNKNOWNERR (* Unknown error *)
-
- (* The type of error codes. *)
-
-exception Unix_error of error * string * string
- (* Raised by the system calls below when an error is encountered.
- The first component is the error code; the second component
- is the function name; the third component is the string parameter
- to the function, if it has one, or the empty string otherwise. *)
-
-external error_message : error -> string = "unix_error_message"
- (* Return a string describing the given error code. *)
-
-val handle_unix_error : ('a -> 'b) -> 'a -> 'b
- (* [handle_unix_error f x] applies [f] to [x] and returns the result.
- If the exception [Unix_error] is raised, it prints a message
- describing the error and exits with code 2. *)
-
-
-(*** Interface with the parent process *)
-
-external environment : unit -> string array = "unix_environment"
- (* Return the process environment, as an array of strings
- with the format ``variable=value''. See also [sys__getenv]. *)
-
-(*** Process handling *)
-
-type process_status =
- WEXITED of int
- | WSIGNALED of int
- | WSTOPPED of int
-
- (* The termination status of a process. [WEXITED] means that the
- process terminated normally by [exit]; the argument is the return
- code. [WSIGNALED] means that the process was killed by a signal;
- the argument is the signal number. [WSTOPPED] means
- that the process was stopped by a signal; the argument is the
- signal number. *)
-
-type wait_flag =
- WNOHANG
- | WUNTRACED
-
- (* Flags for [waitopt] and [waitpid].
- [WNOHANG] means do not block if no child has
- died yet, but immediately return with a pid equal to 0.
- [WUNTRACED] means report also the children that receive stop
- signals. *)
-
-external execv : string -> string array -> unit = "unix_execv"
- (* [execv prog args] execute the program in file [prog], with
- the arguments [args], and the current process environment. *)
-external execve : string -> string array -> string array -> unit = "unix_execve"
- (* Same as [execv], except that the third argument provides the
- environment to the program executed. *)
-external execvp : string -> string array -> unit = "unix_execvp"
- (* Same as [execv], except that the program is searched in the path. *)
-
-external waitpid : wait_flag list -> int -> int * process_status
- = "win_waitpid"
- (* Wait until the process with given pid terminates, and return
- its termination status. The flags are ignored. *)
-
-val system : string -> process_status
- (* Execute the given command, wait until it terminates, and return
- its termination status. The string is interpreted by the command
- interpreter and therefore can contain redirections, quotes,
- variables, etc. *)
-
-external getpid : unit -> int = "unix_getpid"
- (* Return the pid of the process. *)
-
-(*** Basic file input/output *)
-
-type file_descr
- (* The abstract type of file descriptors. *)
-
-val stdin : file_descr
-val stdout : file_descr
-val stderr : file_descr
- (* File descriptors for standard input, standard output and
- standard error. *)
-
-
-type open_flag =
- O_RDONLY (* Open for reading *)
- | O_WRONLY (* Open for writing *)
- | O_RDWR (* Open for reading and writing *)
- | O_NONBLOCK (* Open in non-blocking mode *)
- | O_APPEND (* Open for append *)
- | O_CREAT (* Create if nonexistent *)
- | O_TRUNC (* Truncate to 0 length if existing *)
- | O_EXCL (* Fail if existing *)
- | O_BINARY (* No translation (default) *)
- | O_TEXT (* Translate as a text file *)
- (* The flags to [openfile], [in_channel_of_descr_gen] and
- [out_channel_of_descr_gen]. *)
-
-type file_perm = int
- (* The type of file access rights. *)
-
-external openfile : string -> open_flag list -> file_perm -> file_descr
- = "unix_open"
- (* Open the named file with the given flags. Third argument is
- the permissions to give to the file if it is created. Return
- a file descriptor on the named file.
- The flags [O_NONBLOCK], [O_APPEND], [O_BINARY] and [O_TEXT]
- are ignored by [openfile]. *)
-external close : file_descr -> unit = "unix_close"
- (* Close a file descriptor. *)
-val read : file_descr -> string -> int -> int -> int
- (* [read fd buff ofs len] reads [len] characters from descriptor
- [fd], storing them in string [buff], starting at position [ofs]
- in string [buff]. Return the number of characters actually read. *)
-val write : file_descr -> string -> int -> int -> int
- (* [write fd buff ofs len] writes [len] characters to descriptor
- [fd], taking them from string [buff], starting at position [ofs]
- in string [buff]. Return the number of characters actually
- written. *)
-
-
-(*** Interfacing with the standard input/output library. *)
-
-val in_channel_of_descr : file_descr -> in_channel
- (* Create an input channel reading from the given descriptor.
- The input channel is opened in binary mode. *)
-val out_channel_of_descr : file_descr -> out_channel
- (* Create an output channel writing on the given descriptor.
- The output channel is opened in binary mode. *)
-val in_channel_of_descr_gen : open_flag list -> file_descr -> in_channel
-val out_channel_of_descr_gen : open_flag list -> file_descr -> out_channel
- (* Same as [in_channel_of_descr] and [out_channel_of_descr],
- except that the first argument (a list of flags) specifies
- the opening mode. The following flags are recognized:
- [O_TEXT] (open in text mode), [O_BINARY] (open in binary mode),
- and [O_APPEND] (all writes go at the end of the file).
- Other flags are ignored. *)
-
-val descr_of_in_channel : in_channel -> file_descr
- (* Return the descriptor corresponding to an input channel. *)
-val descr_of_out_channel : out_channel -> file_descr
- (* Return the descriptor corresponding to an output channel. *)
-
-(*** Seeking and truncating *)
-
-type seek_command =
- SEEK_SET
- | SEEK_CUR
- | SEEK_END
-
- (* Positioning modes for [lseek]. [SEEK_SET] indicates positions
- relative to the beginning of the file, [SEEK_CUR] relative to
- the current position, [SEEK_END] relative to the end of the
- file. *)
-
-external lseek : file_descr -> int -> seek_command -> int = "unix_lseek"
- (* Set the current position for a file descriptor *)
-
-
-(*** File statistics *)
-
-type file_kind =
- S_REG (* Regular file *)
- | S_DIR (* Directory *)
- | S_CHR (* Character device *)
- | S_BLK (* Block device *)
- | S_LNK (* Symbolic link *)
- | S_FIFO (* Named pipe *)
- | S_SOCK (* Socket *)
-
-type stats =
- { st_dev : int; (* Device number *)
- st_ino : int; (* Inode number *)
- st_kind : file_kind; (* Kind of the file *)
- st_perm : 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 owner *)
- st_rdev : int; (* Device minor number *)
- st_size : int; (* Size in bytes *)
- st_atime : int; (* Last access time *)
- st_mtime : int; (* Last modification time *)
- st_ctime : int } (* Last status change time *)
-
- (* The informations returned by the [stat] calls. *)
-
-external stat : string -> stats = "unix_stat"
- (* Return the information for the named file. *)
-
-(*** Operations on file names *)
-
-external unlink : string -> unit = "unix_unlink"
- (* Removes the named file *)
-external rename : string -> string -> unit = "unix_rename"
- (* [rename old new] changes the name of a file from [old] to [new]. *)
-
-(*** File permissions and ownership *)
-
-type access_permission =
- R_OK (* Read permission *)
- | W_OK (* Write permission *)
- | X_OK (* Execution permission *)
- | F_OK (* File exists *)
-
- (* Flags for the [access] call. *)
-
-external access : string -> access_permission list -> unit = "unix_access"
- (* Check that the process has the given permissions over the named
- file. Raise [Unix_error] otherwise. *)
-
-
-(*** Operations on file descriptors *)
-
-external dup : file_descr -> file_descr = "unix_dup"
- (* Return a new file descriptor referencing the same file as
- the given descriptor. *)
-external dup2 : file_descr -> file_descr -> unit = "unix_dup2"
- (* [dup2 fd1 fd2] duplicates [fd1] to [fd2], closing [fd2] if already
- opened. *)
-val set_nonblock : file_descr -> unit
-val clear_nonblock : file_descr -> unit
- (* No-ops *)
-external set_close_on_exec : file_descr -> unit = "win_set_close_on_exec"
-external clear_close_on_exec : file_descr -> unit = "win_clear_close_on_exec"
- (* Set or clear the ``close-on-exec'' flag on the given descriptor.
- A descriptor with the close-on-exec flag is automatically
- closed when the current process starts another program with
- one of the [exec] functions. *)
-
-
-(*** Directories *)
-
-external mkdir : string -> file_perm -> unit = "unix_mkdir"
- (* Create a directory with the given permissions. *)
-external rmdir : string -> unit = "unix_rmdir"
- (* Remove an empty directory. *)
-external chdir : string -> unit = "unix_chdir"
- (* Change the process working directory. *)
-external getcwd : unit -> string = "unix_getcwd"
- (* Return the name of the current working directory. *)
-
-
-type dir_handle
-
- (* The type of descriptors over opened directories. *)
-
-val opendir : string -> dir_handle
- (* Open a descriptor on a directory *)
-val readdir : dir_handle -> string
- (* Return the next entry in a directory.
- Raise [End_of_file] when the end of the directory has been
- reached. *)
-val closedir : dir_handle -> unit
- (* Close a directory descriptor. *)
-
-
-(*** Pipes and redirections *)
-
-external pipe : unit -> file_descr * file_descr = "unix_pipe"
- (* Create a pipe. The first component of the result is opened
- for reading, that's the exit to the pipe. The second component is
- opened for writing, that's the entrance to the pipe. *)
-
-
-(*** High-level process and redirection management *)
-
-val create_process :
- string -> string array -> file_descr -> file_descr -> file_descr -> int
- (* [create_process prog args new_stdin new_stdout new_stderr]
- 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 standard input and outputs of the new process are connected
- to the descriptors [new_stdin], [new_stdout] and [new_stderr].
- Passing e.g. [stdout] for [new_stdout] prevents the redirection
- and causes the new process to have the same standard output
- as the current process.
- The executable file [prog] is searched in the path.
- The new process has the same environment as the current process.
- All file descriptors of the current process are closed in the
- new process, except those redirected to standard input and
- outputs. *)
-
-val create_process_env :
- string -> string array -> string array ->
- file_descr -> file_descr -> file_descr -> int
- (* [create_process_env prog args env new_stdin new_stdout new_stderr]
- works as [create_process], except that the extra argument
- [env] specifies the environment passed to the program. *)
-
-val open_process_in: string -> in_channel
-val open_process_out: string -> out_channel
-val open_process: string -> in_channel * out_channel
- (* High-level pipe and process management. These functions
- run the given command in parallel with the program,
- and return channels connected to the standard input and/or
- the standard output of the command. The command is interpreted
- by the shell [/bin/sh] (cf. [system]). Warning: writes on channels
- are buffered, hence be careful to call [flush] at the right times
- to ensure correct synchronization. *)
-val close_process_in: in_channel -> process_status
-val close_process_out: out_channel -> process_status
-val close_process: in_channel * out_channel -> process_status
- (* Close channels opened by [open_process_in], [open_process_out]
- and [open_process], respectively, wait for the associated
- command to terminate, and return its termination status. *)
-
-(*** Polling *)
-
-external select :
- file_descr list -> file_descr list -> file_descr list -> float ->
- file_descr list * file_descr list * file_descr list = "unix_select"
-
- (* Wait until some input/output operations become possible on
- some sockets. The three list arguments are, respectively, a set
- of descriptors to check for reading (first argument), for writing
- (second argument), or for exceptional conditions (third argument).
- The fourth argument is the maximal timeout, in seconds; a
- negative fourth argument means no timeout (unbounded wait).
- The result is composed of three sets of descriptors: those ready
- for reading (first component), ready for writing (second component),
- and over which an exceptional condition is pending (third
- component). Unlike under Unix, the Win32 [select] works only
- for descriptors opened on sockets, but not on pipes or files. *)
-
-(*** Time functions *)
-
-type tm =
- { tm_sec : int; (* Seconds 0..59 *)
- tm_min : int; (* Minutes 0..59 *)
- tm_hour : int; (* Hours 0..23 *)
- tm_mday : int; (* Day of month 1..31 *)
- tm_mon : int; (* Month of year 0..11 *)
- tm_year : int; (* Year - 1900 *)
- tm_wday : int; (* Day of week (Sunday is 0) *)
- tm_yday : int; (* Day of year 0..365 *)
- tm_isdst : bool } (* Daylight time savings in effect *)
-
- (* The type representing wallclock time and calendar date. *)
-
-external time : unit -> int = "unix_time"
- (* Return the current time since 00:00:00 GMT, Jan. 1, 1970,
- in seconds. *)
-external gettimeofday : unit -> float = "unix_gettimeofday"
- (* Same as [time], but with resolution better than 1 second. *)
-external gmtime : int -> tm = "unix_gmtime"
- (* Convert a time in seconds, as returned by [time], into a date and
- a time. Assumes Greenwich meridian time zone. *)
-external localtime : int -> tm = "unix_localtime"
- (* Convert a time in seconds, as returned by [time], into a date and
- a time. Assumes the local time zone. *)
-external mktime : tm -> int * tm = "unix_mktime"
- (* Convert a date and time, specified by the [tm] argument, into
- a time in seconds, as returned by [time]. Also return a normalized
- copy of the given [tm] record, with the [tm_wday] and [tm_yday]
- recomputed from the other fields. *)
-external sleep : int -> unit = "unix_sleep"
- (* Stop execution for the given number of seconds. *)
-external utimes : string -> int -> int -> unit = "unix_utimes"
- (* Set the last access time (second arg) and last modification time
- (third arg) for a file. Times are expressed in seconds from
- 00:00:00 GMT, Jan. 1, 1970. *)
-
-(*** User id, group id *)
-
-val getuid : unit -> int
- (* Return the user id of the user executing the process. *)
-val getgid : unit -> int
- (* Return the group id of the user executing the process. *)
-
-type passwd_entry =
- { pw_name : string;
- pw_passwd : string;
- pw_uid : int;
- pw_gid : int;
- pw_gecos : string;
- pw_dir : string;
- pw_shell : string }
- (* Structure of entries in the [passwd] database. *)
-
-type group_entry =
- { gr_name : string;
- gr_passwd : string;
- gr_gid : int;
- gr_mem : string array }
- (* Structure of entries in the [groups] database. *)
-
-val getlogin : unit -> string
- (* Return the login name of the user executing the process. *)
-val getpwnam : string -> passwd_entry
- (* Find an entry in [passwd] with the given name, or raise
- [Not_found]. *)
-val getgrnam : string -> group_entry
- (* Find an entry in [group] with the given name, or raise
- [Not_found]. *)
-val getpwuid : int -> passwd_entry
- (* Find an entry in [passwd] with the given user id, or raise
- [Not_found]. *)
-val getgrgid : int -> group_entry
- (* Find an entry in [group] with the given group id, or raise
- [Not_found]. *)
-
-
-(*** Internet addresses *)
-
-type inet_addr
- (* The abstract type of Internet addresses. *)
-
-external inet_addr_of_string : string -> inet_addr
- = "unix_inet_addr_of_string"
-external string_of_inet_addr : inet_addr -> string
- = "unix_string_of_inet_addr"
- (* Conversions between string with the format [XXX.YYY.ZZZ.TTT]
- and Internet addresses. [inet_addr_of_string] raises [Failure]
- when given a string that does not match this format. *)
-
-val inet_addr_any : inet_addr
- (* A special Internet address, for use only with [bind], representing
- all the Internet addresses that the host machine possesses. *)
-
-(*** Sockets *)
-
-type socket_domain =
- PF_UNIX (* Unix domain *)
- | PF_INET (* Internet domain *)
-
- (* The type of socket domains. *)
-
-type socket_type =
- SOCK_STREAM (* Stream socket *)
- | SOCK_DGRAM (* Datagram socket *)
- | SOCK_RAW (* Raw socket *)
- | SOCK_SEQPACKET (* Sequenced packets socket *)
-
- (* The type of socket kinds, specifying the semantics of
- communications. *)
-
-type sockaddr =
- ADDR_UNIX of string
- | ADDR_INET of inet_addr * int
-
- (* The type of socket addresses. [ADDR_UNIX name] is a socket
- address in the Unix domain; [name] is a file name in the file
- system. [ADDR_INET(addr,port)] is a socket address in the Internet
- domain; [addr] is the Internet address of the machine, and
- [port] is the port number. *)
-
-external socket : socket_domain -> socket_type -> int -> file_descr
- = "unix_socket"
- (* Create a new socket in the given domain, and with the
- given kind. The third argument is the protocol type; 0 selects
- the default protocol for that kind of sockets. *)
-external accept : file_descr -> file_descr * sockaddr = "unix_accept"
- (* Accept connections on the given socket. The returned descriptor
- is a socket connected to the client; the returned address is
- the address of the connecting client. *)
-external bind : file_descr -> sockaddr -> unit = "unix_bind"
- (* Bind a socket to an address. *)
-external connect : file_descr -> sockaddr -> unit = "unix_connect"
- (* Connect a socket to an address. *)
-external listen : file_descr -> int -> unit = "unix_listen"
- (* Set up a socket for receiving connection requests. The integer
- argument is the maximal number of pending requests. *)
-
-type shutdown_command =
- SHUTDOWN_RECEIVE (* Close for receiving *)
- | SHUTDOWN_SEND (* Close for sending *)
- | SHUTDOWN_ALL (* Close both *)
- (* The type of commands for [shutdown]. *)
-
-external shutdown : file_descr -> shutdown_command -> unit = "unix_shutdown"
- (* Shutdown a socket connection. [SHUTDOWN_SEND] as second argument
- causes reads on the other end of the connection to return
- an end-of-file condition.
- [SHUTDOWN_RECEIVE] causes writes on the other end of the connection
- to return a closed pipe condition ([SIGPIPE] signal). *)
-
-external getsockname : file_descr -> sockaddr = "unix_getsockname"
- (* Return the address of the given socket. *)
-external getpeername : file_descr -> sockaddr = "unix_getpeername"
- (* Return the address of the host connected to the given socket. *)
-
-type msg_flag =
- MSG_OOB
- | MSG_DONTROUTE
- | MSG_PEEK
- (* The flags for [recv], [recvfrom], [send] and [sendto]. *)
-
-val recv : file_descr -> string -> int -> int -> msg_flag list -> int
-val recvfrom :
- file_descr -> string -> int -> int -> msg_flag list -> int * sockaddr
- (* Receive data from an unconnected socket. *)
-val send : file_descr -> string -> int -> int -> msg_flag list -> int
-val sendto :
- file_descr -> string -> int -> int -> msg_flag list -> sockaddr -> int
- (* Send data over an unconnected socket. *)
-
-type socket_option =
- SO_DEBUG (* Record debugging information *)
- | SO_BROADCAST (* Permit sending of broadcast messages *)
- | SO_REUSEADDR (* Allow reuse of local addresses for bind *)
- | SO_KEEPALIVE (* Keep connection active *)
- | SO_DONTROUTE (* Bypass the standard routing algorithms *)
- | SO_OOBINLINE (* Leave out-of-band data in line *)
- (* The socket options settable with [setsockopt]. *)
-
-external getsockopt : file_descr -> socket_option -> bool = "unix_getsockopt"
- (* Return the current status of an option in the given socket. *)
-external setsockopt : file_descr -> socket_option -> bool -> unit
- = "unix_setsockopt"
- (* Set or clear an option in the given socket. *)
-
-(*** High-level network connection functions *)
-
-val open_connection : sockaddr -> in_channel * out_channel
- (* Connect to a server at the given address.
- Return a pair of buffered channels connected to the server.
- Remember to call [flush] on the output channel at the right times
- to ensure correct synchronization. *)
-val shutdown_connection : in_channel -> unit
- (* ``Shut down'' a connection established with [open_connection];
- that is, transmit an end-of-file condition to the server reading
- on the other side of the connection. *)
-
-(*** Host and protocol databases *)
-
-type host_entry =
- { h_name : string;
- h_aliases : string array;
- h_addrtype : socket_domain;
- h_addr_list : inet_addr array }
- (* Structure of entries in the [hosts] database. *)
-
-type protocol_entry =
- { p_name : string;
- p_aliases : string array;
- p_proto : int }
- (* Structure of entries in the [protocols] database. *)
-
-type service_entry =
- { s_name : string;
- s_aliases : string array;
- s_port : int;
- s_proto : string }
- (* Structure of entries in the [services] database. *)
-
-external gethostname : unit -> string = "unix_gethostname"
- (* Return the name of the local host. *)
-external gethostbyname : string -> host_entry = "unix_gethostbyname"
- (* Find an entry in [hosts] with the given name, or raise
- [Not_found]. *)
-external gethostbyaddr : inet_addr -> host_entry = "unix_gethostbyaddr"
- (* Find an entry in [hosts] with the given address, or raise
- [Not_found]. *)
-external getprotobyname : string -> protocol_entry
- = "unix_getprotobyname"
- (* Find an entry in [protocols] with the given name, or raise
- [Not_found]. *)
-external getprotobynumber : int -> protocol_entry
- = "unix_getprotobynumber"
- (* Find an entry in [protocols] with the given protocol number,
- or raise [Not_found]. *)
-external getservbyname : string -> string -> service_entry
- = "unix_getservbyname"
- (* Find an entry in [services] with the given name, or raise
- [Not_found]. *)
-external getservbyport : int -> string -> service_entry
- = "unix_getservbyport"
- (* Find an entry in [services] with the given service number,
- or raise [Not_found]. *)
-
-(*---*)
-val wait : unit -> int * process_status