CUnix
type load_path = physical_path list
val physical_path_of_string : string -> physical_path
val string_of_physical_path : physical_path -> string
val escaped_string_of_physical_path : physical_path -> string
Escape what has to be escaped (e.g. surround with quotes if with spaces)
If a path p
starts with the current directory $PWD then strip_path p
returns the sub-path relative to $PWD. Any leading "./" are also removed from the result.
make_suffix file suf
catenate file
with suf
when file
does not already end with suf
.
run_command com
launches command com
, and returns the contents of stdout and stderr. If given, ~hook
is called on each elements read on stdout or stderr.
sys_command
launches program prog
with arguments args
. It behaves like Sys.command
, except that we rely on Unix.create_process
, it's hardly more complex and avoids dealing with shells. In particular, no need to quote arguments (against whitespace or other funny chars in paths), hence no need to care about the different quoting conventions of /bin/sh and cmd.exe.
A version of Unix.waitpid
immune to EINTR exceptions