package eio

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Eio.FileSource

Operations on open files.

Files implement the Flow APIs, which can be used for reading and writing data. This module provides additonal file-specific operations, such as seeking within a file.

To get an open file, use the functions in the Path module.

Types

Sourcemodule Unix_perm : sig ... end

Traditional Unix permissions.

Sourcemodule Stat : sig ... end

Portable file stats.

Sourcetype ro_ty = [
  1. | `File
  2. | Flow.source_ty
  3. | Resource.close_ty
]
Sourcetype 'a ro = ([> ro_ty ] as 'a) Std.r

A file opened for reading.

Sourcetype rw_ty = [
  1. | ro_ty
  2. | Flow.sink_ty
]
Sourcetype 'a rw = ([> rw_ty ] as 'a) Std.r

A file opened for reading and writing.

Metadata

Sourceval stat : _ ro -> Stat.t

stat t returns the Stat.t record associated with t.

Sourceval size : _ ro -> Optint.Int63.t

size t returns the size of t.

Reading and writing

Sourceval pread : _ ro -> file_offset:Optint.Int63.t -> Cstruct.t list -> int

pread t ~file_offset bufs performs a single read of t at file_offset into bufs.

It returns the number of bytes read, which may be less than the space in bufs, even if more bytes are available. Use pread_exact instead if you require the buffer to be filled.

To read at the current offset, use Flow.single_read instead.

Sourceval pread_exact : _ ro -> file_offset:Optint.Int63.t -> Cstruct.t list -> unit

pread_exact t ~file_offset bufs reads from t into bufs until bufs is full.

Sourceval pwrite_single : _ rw -> file_offset:Optint.Int63.t -> Cstruct.t list -> int

pwrite_single t ~file_offset bufs performs a single write operation, writing data from bufs to location file_offset in t.

It returns the number of bytes written, which may be less than the length of bufs. In most cases, you will want to use pwrite_all instead.

Sourceval pwrite_all : _ rw -> file_offset:Optint.Int63.t -> Cstruct.t list -> unit

pwrite_all t ~file_offset bufs writes all the data in bufs to location file_offset in t.

Sourceval seek : _ ro -> Optint.Int63.t -> [ `Set | `Cur | `End ] -> Optint.Int63.t

Set and/or get the current file position.

Like Unix.lseek.

Sourceval sync : _ rw -> unit

Flush file buffers to disk.

Like Unix.fsync.

Sourceval truncate : _ rw -> Optint.Int63.t -> unit

Set the length of a file.

Like Unix.ftruncate.

Provider Interface

Sourcemodule Pi : sig ... end