package iostream

  1. Overview
  2. Docs
Generic, composable IO input and output streams

Install

Dune Dependency

Authors

Maintainers

Sources

iostream-0.2.2.tbz
sha256=6d2725f20fcca4fe8c8c54fcaa442fb088f20d1c5788c437182042cfcce3829d
sha512=8eb87e13ff448d627062ffb2b0e9b10c29fe5406dcac24889499f358a9d1c50fc1ea02dc601f49fecebd38833b415431265e7fad991a55308923f63fb0aa79ad

doc/src/iostream.unix/iostream_unix.ml.html

Source file iostream_unix.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
open Iostream

module In : sig
  open In

  val of_unix_fd : ?close_noerr:bool -> Unix.file_descr -> t_seekable
  (** Create an in stream from a raw Unix file descriptor. The file descriptor
      must be opened for reading. *)
end = struct
  open In

  let of_unix_fd ?(close_noerr = false) (fd : Unix.file_descr) : t_seekable =
    object
      method input buf i len = Unix.read fd buf i len

      method close () =
        if close_noerr then (
          try Unix.close fd with _ -> ()
        ) else
          Unix.close fd

      method seek i = ignore (Unix.lseek fd i Unix.SEEK_SET : int)
      method pos () : int = Unix.lseek fd 0 Unix.SEEK_CUR
    end
end

module Out : sig
  open Out

  val of_unix_fd : Unix.file_descr -> t_seekable
  (** Output stream directly writing into the given Unix file descriptor. *)
end = struct
  open Out

  let of_unix_fd fd : t_seekable = of_out_channel (Unix.out_channel_of_descr fd)
end
OCaml

Innovation. Community. Security.