Module Core__.Bigstring
include module type of sig ... end
- type t- = (Core_kernel__.Import.char, Bigarray.int8_unsigned_elt, Bigarray.c_layout) Bigarray.Array1.t
- type t_frozen- = t
- val compare : t -> t -> Base.int
- val t_of_sexp : Sexplib0.Sexp.t -> t
- val sexp_of_t : t -> Sexplib0.Sexp.t
- val compare_t_frozen : t_frozen -> t_frozen -> Base.int
- val hash_fold_t_frozen : Base.Hash.state -> t_frozen -> Base.Hash.state
- val hash_t_frozen : t_frozen -> Base.Hash.hash_value
- val sexp_of_t_frozen : t_frozen -> Ppx_sexp_conv_lib.Sexp.t
- val t_frozen_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> t_frozen
- val equal : t Base.Equal.equal
- val init : Base.int -> f:(Base.int -> Base.char) -> t
- val of_string : ?pos:Base.int -> ?len:Base.int -> Base.string -> t
- val of_bytes : ?pos:Base.int -> ?len:Base.int -> Base.bytes -> t
- val to_string : ?pos:Base.int -> ?len:Base.int -> t -> Base.string
- val to_bytes : ?pos:Base.int -> ?len:Base.int -> t -> Base.bytes
- val concat : ?sep:t -> t Base.list -> t
- val check_args : loc:Base.string -> pos:Base.int -> len:Base.int -> t -> Base.unit
- val get_opt_len : t -> pos:Base.int -> Base.int Base.option -> Base.int
- val length : t -> Base.int
- val get : t -> Base.int -> Base.char
- val set : t -> Base.int -> Base.char -> Base.unit
- val is_mmapped : t -> Base.bool
- val blit : (t, t) Base__.Blit_intf.blit
- val blito : (t, t) Base__.Blit_intf.blito
- val unsafe_blit : (t, t) Base__.Blit_intf.blit
- val sub : (t, t) Base__.Blit_intf.sub
- val subo : (t, t) Base__.Blit_intf.subo
module To_bytes = Core_kernel__Bigstring.To_bytes- val memset : t -> pos:Base.int -> len:Base.int -> Base.char -> Base.unit
- val memcmp : t -> pos1:Base.int -> t -> pos2:Base.int -> len:Base.int -> Base.int
- val find : ?pos:Base.int -> ?len:Base.int -> Base.char -> t -> Base.int Base.option
- val get_int8 : t -> pos:Base.int -> Base.int
- val set_int8 : t -> pos:Base.int -> Base.int -> Base.unit
- val get_uint8 : t -> pos:Base.int -> Base.int
- val set_uint8 : t -> pos:Base.int -> Base.int -> Base.unit
- val unsafe_get_int8 : t -> pos:Base.int -> Base.int
- val unsafe_set_int8 : t -> pos:Base.int -> Base.int -> Base.unit
- val unsafe_get_uint8 : t -> pos:Base.int -> Base.int
- val unsafe_set_uint8 : t -> pos:Base.int -> Base.int -> Base.unit
- val get_int16_le : t -> pos:Base.int -> Base.int
- val get_int16_be : t -> pos:Base.int -> Base.int
- val set_int16_le : t -> pos:Base.int -> Base.int -> Base.unit
- val set_int16_be : t -> pos:Base.int -> Base.int -> Base.unit
- val unsafe_get_int16_le : t -> pos:Base.int -> Base.int
- val unsafe_get_int16_be : t -> pos:Base.int -> Base.int
- val unsafe_set_int16_le : t -> pos:Base.int -> Base.int -> Base.unit
- val unsafe_set_int16_be : t -> pos:Base.int -> Base.int -> Base.unit
- val get_uint16_le : t -> pos:Base.int -> Base.int
- val get_uint16_be : t -> pos:Base.int -> Base.int
- val set_uint16_le : t -> pos:Base.int -> Base.int -> Base.unit
- val set_uint16_be : t -> pos:Base.int -> Base.int -> Base.unit
- val unsafe_get_uint16_le : t -> pos:Base.int -> Base.int
- val unsafe_get_uint16_be : t -> pos:Base.int -> Base.int
- val unsafe_set_uint16_le : t -> pos:Base.int -> Base.int -> Base.unit
- val unsafe_set_uint16_be : t -> pos:Base.int -> Base.int -> Base.unit
- val get_int32_le : t -> pos:Base.int -> Base.int
- val get_int32_be : t -> pos:Base.int -> Base.int
- val set_int32_le : t -> pos:Base.int -> Base.int -> Base.unit
- val set_int32_be : t -> pos:Base.int -> Base.int -> Base.unit
- val unsafe_get_int32_le : t -> pos:Base.int -> Base.int
- val unsafe_get_int32_be : t -> pos:Base.int -> Base.int
- val unsafe_set_int32_le : t -> pos:Base.int -> Base.int -> Base.unit
- val unsafe_set_int32_be : t -> pos:Base.int -> Base.int -> Base.unit
- val get_uint32_le : t -> pos:Base.int -> Base.int
- val get_uint32_be : t -> pos:Base.int -> Base.int
- val set_uint32_le : t -> pos:Base.int -> Base.int -> Base.unit
- val set_uint32_be : t -> pos:Base.int -> Base.int -> Base.unit
- val unsafe_get_uint32_le : t -> pos:Base.int -> Base.int
- val unsafe_get_uint32_be : t -> pos:Base.int -> Base.int
- val unsafe_set_uint32_le : t -> pos:Base.int -> Base.int -> Base.unit
- val unsafe_set_uint32_be : t -> pos:Base.int -> Base.int -> Base.unit
- val get_int64_le_exn : t -> pos:Base.int -> Base.int
- val get_int64_be_exn : t -> pos:Base.int -> Base.int
- val get_int64_le_trunc : t -> pos:Base.int -> Base.int
- val get_int64_be_trunc : t -> pos:Base.int -> Base.int
- val set_int64_le : t -> pos:Base.int -> Base.int -> Base.unit
- val set_int64_be : t -> pos:Base.int -> Base.int -> Base.unit
- val unsafe_get_int64_le_exn : t -> pos:Base.int -> Base.int
- val unsafe_get_int64_be_exn : t -> pos:Base.int -> Base.int
- val unsafe_get_int64_le_trunc : t -> pos:Base.int -> Base.int
- val unsafe_get_int64_be_trunc : t -> pos:Base.int -> Base.int
- val unsafe_set_int64_le : t -> pos:Base.int -> Base.int -> Base.unit
- val unsafe_set_int64_be : t -> pos:Base.int -> Base.int -> Base.unit
- val get_uint64_be_exn : t -> pos:Base.int -> Base.int
- val get_uint64_le_exn : t -> pos:Base.int -> Base.int
- val set_uint64_le : t -> pos:Base.int -> Base.int -> Base.unit
- val set_uint64_be : t -> pos:Base.int -> Base.int -> Base.unit
- val unsafe_get_uint64_be_exn : t -> pos:Base.int -> Base.int
- val unsafe_get_uint64_le_exn : t -> pos:Base.int -> Base.int
- val unsafe_set_uint64_le : t -> pos:Base.int -> Base.int -> Base.unit
- val unsafe_set_uint64_be : t -> pos:Base.int -> Base.int -> Base.unit
- val get_int32_t_le : t -> pos:Base.int -> Base.Int32.t
- val get_int32_t_be : t -> pos:Base.int -> Base.Int32.t
- val set_int32_t_le : t -> pos:Base.int -> Base.Int32.t -> Base.unit
- val set_int32_t_be : t -> pos:Base.int -> Base.Int32.t -> Base.unit
- val unsafe_get_int32_t_le : t -> pos:Base.int -> Base.Int32.t
- val unsafe_get_int32_t_be : t -> pos:Base.int -> Base.Int32.t
- val unsafe_set_int32_t_le : t -> pos:Base.int -> Base.Int32.t -> Base.unit
- val unsafe_set_int32_t_be : t -> pos:Base.int -> Base.Int32.t -> Base.unit
- val get_int64_t_le : t -> pos:Base.int -> Base.Int64.t
- val get_int64_t_be : t -> pos:Base.int -> Base.Int64.t
- val set_int64_t_le : t -> pos:Base.int -> Base.Int64.t -> Base.unit
- val set_int64_t_be : t -> pos:Base.int -> Base.Int64.t -> Base.unit
- val unsafe_get_int64_t_le : t -> pos:Base.int -> Base.Int64.t
- val unsafe_get_int64_t_be : t -> pos:Base.int -> Base.Int64.t
- val unsafe_set_int64_t_le : t -> pos:Base.int -> Base.Int64.t -> Base.unit
- val unsafe_set_int64_t_be : t -> pos:Base.int -> Base.Int64.t -> Base.unit
module Private = Core_kernel__Bigstring.Privatemodule Hexdump = Core_kernel__Bigstring.Hexdump- val create : ?max_mem_waiting_gc:Core_kernel.Byte_units.t -> Core_kernel__.Import.int -> t
- val write_bin_prot : t -> ?pos:Core_kernel__.Import.int -> 'a Bin_prot.Type_class.writer -> 'a -> Core_kernel__.Import.int
- val read_bin_prot : t -> ?pos:Core_kernel__.Import.int -> ?len:Core_kernel__.Import.int -> 'a Bin_prot.Type_class.reader -> ('a * Core_kernel__.Import.int) Core_kernel.Or_error.t
- val read_bin_prot_verbose_errors : t -> ?pos:Core_kernel__.Import.int -> ?len:Core_kernel__.Import.int -> 'a Bin_prot.Type_class.reader -> [ `Invalid_data of Core_kernel.Error.t | `Not_enough_data | `Ok of 'a * Core_kernel__.Import.int ]
- val unsafe_destroy : t -> Core_kernel__.Import.unit
- val unsafe_destroy_and_resize : t -> len:Core_kernel__.Import.int -> t
- val get_tail_padded_fixed_string : padding:Core_kernel__.Import.char -> t -> pos:Core_kernel__.Import.int -> len:Core_kernel__.Import.int -> Core_kernel__.Import.unit -> Core_kernel__.Import.string
- val set_tail_padded_fixed_string : padding:Core_kernel__.Import.char -> t -> pos:Core_kernel__.Import.int -> len:Core_kernel__.Import.int -> Core_kernel__.Import.string -> Core_kernel__.Import.unit
- val get_head_padded_fixed_string : padding:Core_kernel__.Import.char -> t -> pos:Core_kernel__.Import.int -> len:Core_kernel__.Import.int -> Core_kernel__.Import.unit -> Core_kernel__.Import.string
- val set_head_padded_fixed_string : padding:Core_kernel__.Import.char -> t -> pos:Core_kernel__.Import.int -> len:Core_kernel__.Import.int -> Core_kernel__.Import.string -> Core_kernel__.Import.unit
module Unstable = Core_kernel__Bigstring.Unstablemodule Stable = Core_kernel__Bigstring.Stable- exception- IOError of int * exn
- Type of I/O errors. - In - IOError (n, exn),- nis the number of bytes successfully read/written before the error and- exnis the exception that occurred (e.g.,- Unix_error,- End_of_file)
Input functions
- val read : ?min_len:int -> Unix.file_descr -> ?pos:int -> ?len:int -> t -> int
- read ?min_len fd ?pos ?len bstrreads at least- min_len(must be- >= 0) and at most- len(must be- >= min_len) bytes from file descriptor- fd, and writes them to bigstring- bstrstarting at position- pos. Returns the number of bytes actually read.- readreturns zero only if- len = 0. If- len > 0and there's nothing left to read,- readraises to indicate EOF even if- min_len = 0.- NOTE: Even if - lenis zero, there may still be errors when reading from the descriptor!- Raises - Invalid_argumentif the designated ranges are out of bounds. Raises- IOErrorin the case of input errors, or on EOF if the minimum length could not be read.
- val really_read : Unix.file_descr -> ?pos:int -> ?len:int -> t -> unit
- really_read fd ?pos ?len bstrreads- lenbytes from file descriptor- fd, and writes them to bigstring- bstrstarting at position- pos.- Raises - Invalid_argumentif the designated range is out of bounds. Raises- IOErrorin the case of input errors, or on EOF.
- val really_recv : Unix.file_descr -> ?pos:int -> ?len:int -> t -> unit
- really_recv sock ?pos ?len bstrreceives- lenbytes from socket- sock, and writes them to bigstring- bstrstarting at position- pos. If- lenis zero, the function returns immediately without performing the underlying system call.- Raises - Invalid_argumentif the designated range is out of bounds. Raises- IOErrorin the case of input errors, or on EOF.
- val recvfrom_assume_fd_is_nonblocking : Unix.file_descr -> ?pos:int -> ?len:int -> t -> int * Unix.sockaddr
- recvfrom_assume_fd_is_nonblocking sock ?pos ?len bstrreads up to- lenbytes into bigstring- bstrstarting at position- posfrom socket- sockwithout yielding to other OCaml-threads.- Returns the number of bytes actually read and the socket address of the client. - Raises - Unix_errorin the case of input errors. Raises- Invalid_argumentif the designated range is out of bounds.
- val read_assume_fd_is_nonblocking : Unix.file_descr -> ?pos:int -> ?len:int -> t -> Core__.Syscall_result.Int.t
- read_assume_fd_is_nonblocking fd ?pos ?len bstrreads up to- lenbytes into bigstring- bstrstarting at position- posfrom file descriptor- fdwithout yielding to other OCaml-threads. Returns the number of bytes actually read.- Raises - Invalid_argumentif the designated range is out of bounds.
- val pread_assume_fd_is_nonblocking : Unix.file_descr -> offset:int -> ?pos:int -> ?len:int -> t -> int
- pread_assume_fd_is_nonblocking fd ~offset ?pos ?len bstrreads up to- lenbytes from file descriptor- fdat offset- offset, and writes them to bigstring- bstrstarting at position- pos. The- fdmust be capable of seeking, and the current file offset used for a regular- read()is unchanged. Please see- man preadfor more information. Returns the number of bytes actually read.- Raises - Invalid_argumentif the designated range is out of bounds. Raises- Unix_errorin the case of input errors.
- val input : ?min_len:int -> Core__.Import.In_channel.t -> ?pos:int -> ?len:int -> t -> int
- input ?min_len ic ?pos ?len bstrtries to read- lenbytes (guarantees to read at least- min_lenbytes, which must be- >= 0and- <= len), if possible, before returning, from input channel- ic, and writes them to bigstring- bstrstarting at position- pos. Returns the number of bytes actually read.- NOTE: Even if - lenis zero, there may still be errors when reading from the descriptor, which will be done if the internal buffer is empty!- NOTE: If at least - lencharacters are available in the input channel buffer and if- lenis not zero, data will only be fetched from the channel buffer. Otherwise data will be read until at least- min_lencharacters are available.- Raises - Invalid_argumentif the designated range is out of bounds. Raises- IOErrorin the case of input errors, or on premature EOF.
- val really_input : Core__.Import.In_channel.t -> ?pos:int -> ?len:int -> t -> unit
- really_input ic ?pos ?len bstrreads exactly- lenbytes from input channel- ic, and writes them to bigstring- bstrstarting at position- pos.- Raises - Invalid_argumentif the designated range is out of bounds. Raises- IOErrorin the case of input errors, or on premature EOF.
Output functions
- val really_write : Unix.file_descr -> ?pos:int -> ?len:int -> t -> unit
- really_write fd ?pos ?len bstrwrites- lenbytes in bigstring- bstrstarting at position- posto file descriptor- fd.- Raises - Invalid_argumentif the designated range is out of bounds. Raises- IOErrorin the case of output errors.
- val really_send_no_sigpipe : (Unix.file_descr -> ?pos:int -> ?len:int -> t -> unit) Core__.Import.Or_error.t
- really_send_no_sigpipe sock ?pos ?len bstrsends- lenbytes in bigstring- bstrstarting at position- posto socket- sockwithout blocking and ignoring- SIGPIPE.- Raises - Invalid_argumentif the designated range is out of bounds. Raises- IOErrorin the case of output errors.- really_send_no_sigpipeis not implemented on some platforms, in which case it returns an- Errorvalue indicating that it is unimplemented.
- val send_nonblocking_no_sigpipe : (Unix.file_descr -> ?pos:int -> ?len:int -> t -> Core__.Syscall_result.Int.t) Core__.Import.Or_error.t
- send_nonblocking_no_sigpipe sock ?pos ?len bstrtries to send- lenbytes in bigstring- bstrstarting at position- posto socket- sock. Returns- bytes_written.- Raises - Invalid_argumentif the designated range is out of bounds.
- val sendto_nonblocking_no_sigpipe : (Unix.file_descr -> ?pos:int -> ?len:int -> t -> Unix.sockaddr -> Core__.Syscall_result.Int.t) Core__.Import.Or_error.t
- sendto_nonblocking_no_sigpipe sock ?pos ?len bstr sockaddrtries to send- lenbytes in bigstring- bstrstarting at position- posto socket- sockusing address- addr. Returns- bytes_written.- Raises - Invalid_argumentif the designated range is out of bounds.
- val write : Unix.file_descr -> ?pos:int -> ?len:int -> t -> int
- write fd ?pos ?len bstrwrites- lenbytes in bigstring- bstrstarting at position- posto file descriptor- fd. Returns the number of bytes actually written.- Raises - Invalid_argumentif the designated range is out of bounds. Raises- Unix_errorin the case of output errors.
- val pwrite_assume_fd_is_nonblocking : Unix.file_descr -> offset:int -> ?pos:int -> ?len:int -> t -> int
- pwrite_assume_fd_is_nonblocking fd ~offset ?pos ?len bstrwrites up to- lenbytes of bigstring- bstrstarting at position- posto file descriptor- fdat position- offset. The- fdmust be capable of seeking, and the current file offset used for non-positional- read()/- write()calls is unchanged. Returns the number of bytes written.- Raises - Invalid_argumentif the designated range is out of bounds. Raises- Unix_errorin the case of output errors.
- val write_assume_fd_is_nonblocking : Unix.file_descr -> ?pos:int -> ?len:int -> t -> int
- write_assume_fd_is_nonblocking fd ?pos ?len bstrwrites- lenbytes in bigstring- bstrstarting at position- posto file descriptor- fdwithout yielding to other OCaml-threads. Returns the number of bytes actually written.- Raises - Invalid_argumentif the designated range is out of bounds. Raises- Unix_errorin the case of output errors.
- val writev : Unix.file_descr -> ?count:int -> t Core__.Core_unix.IOVec.t array -> int
- writev fd ?count iovecswrites- count- iovecsof bigstrings to file descriptor- fd. Returns the number of bytes written.- Raises - Invalid_argumentif- countis out of range. Raises- Unix_errorin the case of output errors.
- val writev_assume_fd_is_nonblocking : Unix.file_descr -> ?count:int -> t Core__.Core_unix.IOVec.t array -> int
- writev_assume_fd_is_nonblocking fd ?count iovecswrites- count- iovecsof bigstrings to file descriptor- fdwithout yielding to other OCaml-threads. Returns the number of bytes actually written.- Raises - Invalid_argumentif the designated range is out of bounds. Raises- Unix_errorin the case of output errors.
- val recvmmsg_assume_fd_is_nonblocking : (Unix.file_descr -> ?count:int -> ?srcs:Unix.sockaddr array -> t Core__.Core_unix.IOVec.t array -> lens:int array -> int) Core__.Import.Or_error.t
- val unsafe_recvmmsg_assume_fd_is_nonblocking : (Unix.file_descr -> t Core__.Core_unix.IOVec.t array -> int -> Unix.sockaddr array option -> int array -> int) Core__.Import.Or_error.t
- val sendmsg_nonblocking_no_sigpipe : (Unix.file_descr -> ?count:int -> t Core__.Core_unix.IOVec.t array -> int option) Core__.Import.Or_error.t
- sendmsg_nonblocking_no_sigpipe sock ?count iovecssends- count- iovecsof bigstrings to socket- sock. Returns- Some bytes_written, or- Noneif the operation would have blocked. This system call will not cause signal- SIGPIPEif an attempt is made to write to a socket that was closed by the other side.- Raises - Invalid_argumentif- countis out of range. Raises- Unix_errorin the case of output errors.
- val output : ?min_len:int -> Core__.Import.Out_channel.t -> ?pos:int -> ?len:int -> t -> int
- output ?min_len oc ?pos ?len bstrtries to output- lenbytes (guarantees to write at least- min_lenbytes, which must be- >= 0), if possible, before returning, from bigstring- bstrstarting at position- posto output channel- oc. Returns the number of bytes actually written.- NOTE: You may need to flush - octo make sure that the data is actually sent.- NOTE: If - lencharacters fit into the channel buffer completely, they will be buffered. Otherwise writes will be attempted until at least- min_lencharacters have been sent.- Raises - Invalid_argumentif the designated range is out of bounds.- Raises - IOErrorin the case of output errors. The- IOErrorargument counting the number of successful bytes includes those that have been transferred to the channel buffer before the error.
- val really_output : Core__.Import.Out_channel.t -> ?pos:int -> ?len:int -> t -> unit
- really_output oc ?pos ?len bstroutputs exactly- lenbytes from bigstring- bstrstarting at position- posto output channel- oc.- Raises - Invalid_argumentif the designated range is out of bounds.- Raises - IOErrorin the case of output errors. The- IOErrorargument counting the number of successful bytes includes those that have been transferred to the channel buffer before the error.
Unsafe functions
- val unsafe_read_assume_fd_is_nonblocking : Unix.file_descr -> pos:int -> len:int -> t -> Core__.Syscall_result.Int.t
- unsafe_read_assume_fd_is_nonblocking fd ~pos ~len bstris similar to- Bigstring.read_assume_fd_is_nonblocking, but does not perform any bounds checks. Will crash on bounds errors!
- val unsafe_write : Unix.file_descr -> pos:int -> len:int -> t -> int
- unsafe_write fd ~pos ~len bstris similar to- Bigstring.write, but does not perform any bounds checks. Will crash on bounds errors!
- val unsafe_write_assume_fd_is_nonblocking : Unix.file_descr -> pos:int -> len:int -> t -> int
- unsafe_write_assume_fd_is_nonblocking fd ~pos ~len bstris similar to- Bigstring.write_assume_fd_is_nonblocking, but does not perform any bounds checks. Will crash on bounds errors!
- val unsafe_read : min_len:int -> Unix.file_descr -> pos:int -> len:int -> t -> int
- unsafe_read ~min_len fd ~pos ~len bstris similar to- Bigstring.read, but does not perform any bounds checks. Will crash on bounds errors!
- val unsafe_really_recv : Unix.file_descr -> pos:int -> len:int -> t -> unit
- unsafe_really_recv sock ~pos ~len bstris similar to- Bigstring.really_recv, but does not perform any bounds checks. Will crash on bounds errors!
- val unsafe_really_write : Unix.file_descr -> pos:int -> len:int -> t -> unit
- unsafe_really_write fd ~pos ~len bstris similar to- Bigstring.write, but does not perform any bounds checks. Will crash on bounds errors!
- val unsafe_really_send_no_sigpipe : (Unix.file_descr -> pos:int -> len:int -> t -> unit) Core__.Import.Or_error.t
- unsafe_really_send_no_sigpipe sock ~pos ~len bstris similar to- Bigstring.send, but does not perform any bounds checks. Will crash on bounds errors!
- val unsafe_send_nonblocking_no_sigpipe : (Unix.file_descr -> pos:int -> len:int -> t -> Core__.Syscall_result.Int.t) Core__.Import.Or_error.t
- unsafe_send_nonblocking_no_sigpipe sock ~pos ~len bstris similar to- Bigstring.send_nonblocking_no_sigpipe, but does not perform any bounds checks. Will crash on bounds errors!
- val unsafe_writev : Unix.file_descr -> t Core__.Core_unix.IOVec.t array -> int -> int
- unsafe_writev fd iovecs countis similar to- Bigstring.writev, but does not perform any bounds checks. Will crash on bounds errors!
- val unsafe_sendmsg_nonblocking_no_sigpipe : (Unix.file_descr -> t Core__.Core_unix.IOVec.t array -> int -> int option) Core__.Import.Or_error.t
- unsafe_sendmsg_nonblocking_no_sigpipe fd iovecs countis similar to- Bigstring.sendmsg_nonblocking_no_sigpipe, but does not perform any bounds checks. Will crash on bounds errors!
- val unsafe_input : min_len:int -> Core__.Import.In_channel.t -> pos:int -> len:int -> t -> int
- unsafe_input ~min_len ic ~pos ~len bstris similar to- Bigstring.input, but does not perform any bounds checks. Will crash on bounds errors!
- val unsafe_output : min_len:int -> Core__.Import.Out_channel.t -> pos:int -> len:int -> t -> int
- unsafe_output ~min_len oc ~pos ~len bstris similar to- Bigstring.output, but does not perform any bounds checks. Will crash on bounds errors!
Memory mapping
- val map_file : shared:bool -> Unix.file_descr -> int -> t
- map_file shared fd nmemory-maps- ncharacters of the data associated with descriptor- fdto a bigstring. Iff- sharedis- true, all changes to the bigstring will be reflected in the file.- Users must keep in mind that operations on the resulting bigstring may result in disk operations which block the runtime. This is true for pure OCaml operations (such as - t.{1} <- 1), and for calls to- blit. While some I/O operations may release the OCaml lock, users should not expect this to be done for all operations on a bigstring returned from- map_file.