Initial snarf.
[shack.git] / libmojave / unix / lm_unix_util.mli
blobc20a35bc06771a5fa7decbb6d4150c86f1cdb0af
1 (*
2 * Extra unix utilities.
4 * ----------------------------------------------------------------
6 * This file is part of MetaPRL, a modular, higher order
7 * logical framework that provides a logical programming
8 * environment for OCaml and other languages.
10 * See the file doc/htmlman/default.html or visit http://metaprl.org/
11 * for more information.
13 * Copyright (C) 1998-2007 PRL Group, Cornell University and Caltech
15 * This library is free software; you can redistribute it and/or
16 * modify it under the terms of the GNU Lesser General Public
17 * License as published by the Free Software Foundation,
18 * version 2.1 of the License.
20 * This library is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
23 * Lesser General Public License for more details.
25 * You should have received a copy of the GNU Lesser General Public
26 * License along with this library; if not, write to the Free Software
27 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
29 * Additional permission is given to link this library with the
30 * OpenSSL project's "OpenSSL" library, and with the OCaml runtime,
31 * and you may distribute the linked executables. See the file
32 * LICENSE.libmojave for more details.
34 * Author: Jason Hickey <jyh@cs.cornell.edu>
35 * Modified By: Aleksey Nogin <anogin@hrl.com>
39 * Print the location of the stack pointer for debugging.
41 val print_stack_pointer : unit -> unit
44 * Location of the home directory.
46 val home_dir : string
49 * Location of application data (this is the same as home_dir
50 * except on Win32).
52 val application_dir : string
55 * Really read some number of bytes.
57 val really_read : Unix.file_descr -> string -> int -> int -> unit
60 * Copy an entire file.
62 val copy_file : string -> string -> int -> unit
65 * Make all the directories in a path.
67 val mkdirhier : string -> unit
70 * Home directory of the current user.
72 val home_dir : string
75 * C interface.
77 val int_of_fd : Unix.file_descr -> int
80 * Lock utilities.
82 val lockf : Unix.file_descr -> Unix.lock_command -> int -> unit
85 * File truncation.
87 val ftruncate : Unix.file_descr -> unit
90 * Get a value from the registry.
91 * raises Not_found if the entry is not found or you are not using Win32.
93 type registry_hkey =
94 HKEY_CLASSES_ROOT
95 | HKEY_CURRENT_CONFIG
96 | HKEY_CURRENT_USER
97 | HKEY_LOCAL_MACHINE
98 | HKEY_USERS
100 val registry_find : registry_hkey -> string -> string -> string
103 * Open a file.
104 * This is mainly for debugging.
106 val openfile : string -> Unix.open_flag list -> Unix.file_perm -> Unix.file_descr
109 * Simple file locking.
111 type flock_command =
112 LOCK_UN
113 | LOCK_SH
114 | LOCK_EX
115 | LOCK_TSH
116 | LOCK_TEX
118 val flock : Unix.file_descr -> flock_command -> unit
121 * Scan the password database for entries.
123 val getpwents : unit -> Unix.passwd_entry list
126 * -*-
127 * Local Variables:
128 * End:
129 * -*-