# Module Core_unix.IOVec

    module IOVec: sig .. end

I/O-vectors for scatter/gather-operations

    type 'buf t = private {

`` | `buf : `'buf`;` | `(*` | Buffer holding the I/O-vector | `*)`
`` | `pos : `int`;` | `(*` | Position of I/O-vector in buffer | `*)`
`` | `len : `int`;` | `(*` | Length of I/O-vector in buffer | `*)`

}
Representation of I/O-vectors. NOTE: DO NOT CHANGE THE MEMORY LAYOUT OF THIS TYPE!!! All C-functions in our bindings that handle I/O-vectors depend on it.

    type 'buf kind

Kind of I/O-vector buffers

    type bigstring = (char, Bigarray.int8_unsigned_elt, Bigarray.c_layout) Bigarray.Array1.t

    val string_kind : string kind

    val bigstring_kind : bigstring kind

    val empty : 'buf kind -> 'buf t

`empty` the empty I/O-vector.

    val of_string : ?pos:int -> ?len:int -> string -> string t

`of_string ?pos ?len str`
Raises `Invalid_argument` if designated substring out of bounds.
Returns an I/O-vector designated by position `pos` and length `len` in string `str`.
`pos` : default = 0
`len` : default = `String.length str - pos`

    val of_bigstring : ?pos:int ->
           ?len:int ->
           bigstring -> bigstring t

`of_bigstring ?pos ?len bstr`
Raises `Invalid_argument` if designated substring out of bounds.
Returns an I/O-vector designated by position `pos` and length `len` in bigstring `bstr`.
`pos` : default = 0
`len` : default = `String.length str - pos`

    val drop : 'buf t -> int -> 'buf t

`drop iovec n` drops `n` characters from `iovec`.
Raises `Failure` if `n` is greater than length of `iovec`.
Returns resulting I/O-vector.

    val max_iovecs : int

    val t_of_sexp : (Sexplib.Sexp.t -> 'buf) -> Sexplib.Sexp.t -> 'buf t

    val sexp_of_t : ('buf -> Sexplib.Sexp.t) -> 'buf t -> Sexplib.Sexp.t

Kind of I/O-vector buffers
`empty` the empty I/O-vector.
`of_string ?pos ?len str`
`of_bigstring ?pos ?len bstr`
`drop iovec n` drops `n` characters from `iovec`.