module Netsys:Some POSIX system calls missing in thesig..end
Unix moduleval restart : ('a -> 'b) -> 'a -> 'brestart f arg calls f arg, and restarts this call if the
exception Unix_error(EINTR,_,_) is caught.
Note that there are some cases where this handling of EINTR is
not sufficient:
Unix.select: When
EINTR is caught the timeout should be adjusted.Unix.connect with a blocking descriptor because this is not
well-enough specified by POSIXval restarting_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 listUnix.select that handles the EINTR conditionval really_write : Unix.file_descr -> string -> int -> int -> unitreally_write fd s pos len: Writes exactly the len bytes from s
to fd starting at pos. The conditions EINTR, EAGAIN and
EWOULDBLOCK are handled.val blocking_read : Unix.file_descr -> string -> int -> int -> intlet p = blocking_read fd s pos len: Reads exactly p bytes from fd
and stores them in s starting at pos where p is the minimum
of len and the number of bytes that are available on fd until
the end of the file. If the function is called with len>0 but
returns less than len this indicates end of file.
The conditions EINTR, EAGAIN and EWOULDBLOCK are handled.val really_read : Unix.file_descr -> string -> int -> int -> unitreally_read fd s pos len: Reads exactly len bytes from fd
and stores them in s starting at pos. If the end of file condition
is seen before len bytes are read, the exception End_of_file
is raised, and it is unspecified how many bytes have been stored in
s. The conditions EINTR, EAGAIN and EWOULDBLOCK are handled.val domain_of_inet_addr : Unix.inet_addr -> Unix.socket_domainval int_of_file_descr : Unix.file_descr -> intval file_descr_of_int : int -> Unix.file_descrval _exit : int -> unitexit.val sysconf_open_max : unit -> intfd:
fd < sysconf_open_max()val getpgid : int -> intval getpgrp : unit -> intgetpgid 0, i.e. returns the process group ID of the
current process.val setpgid : int -> int -> unitsetpgid pid pgid: Set the process group ID of the process pid
to pgid. If pid = 0, the process group ID of the current process
is changed. If pgid = 0, as process group ID the process ID of the
process referenced by pid is used.
It is only possible for a process to join a process group if both
belong to the same session.
val setpgrp : unit -> unitsetpgid 0 0: A new process group ID is created, and the
current process becomes its sole member.val tcgetpgrp : Unix.file_descr -> intval tcsetpgrp : Unix.file_descr -> int -> unitval ctermid : unit -> stringval ttyname : Unix.file_descr -> stringval getsid : int -> intval setreuid : int -> int -> unitval setregid : int -> int -> unitval have_posix_shm : unit -> booltype shm_open_flag =
| |
SHM_O_RDONLY |
| |
SHM_O_RDWR |
| |
SHM_O_CREAT |
| |
SHM_O_EXCL |
| |
SHM_O_TRUNC |
val shm_open : string -> shm_open_flag list -> int -> Unix.file_descrThe open flags are interpreted as follows:
SHM_O_RDONLY: Open the object for read accessSHM_O_RDWR: Open the object for read-write accessSHM_O_CREAT: Create the object if it does not existSHM_O_EXCL: If SHM_O_CREAT was also specified, and a an object
with the given name already exists, return an error
(Unix.EEXIST).SHM_O_TRUNC: If the object already exists, truncate it to
zero bytesSHM_O_RDONLY or SHM_O_RDWR must be given.
On success, the function returns a file descriptor representing the
object. To access the object, one has to memory-map this file
(in O'Caml use one of the map_file functions in the Bigarray
module). Use Unix.ftruncate to resize the object.
Note that it is unspecified whether this file pops up somewhere in the file system, and if so, where.
If a system error occurs, the function raises a Unix.Unix_error
exception.
val shm_unlink : string -> unit