Overview  Index  Help 
Standard ML Basis Library

POSIX_IO


signature POSIX_IO =
sig
  structure FD : sig include POSIX_FLAGS val cloexec : flags end
  structure O :
  sig
    include POSIX_FLAGS
    val append : flags
    val dsync : flags
    val nonblock : flags
    val rsync : flags
    val sync : flags
  end
  structure FLock :
  sig
    type flock
    val flock
        : {
            l_type : lock_type,
            l_whence : whence,
            l_start : Position.int,
            l_len : Position.int,
            l_pid : pid option
          } ->
            flock
    val ltype : flock -> lock_type
    val whence : flock -> whence
    val start : flock -> Position.int
    val len : flock -> Position.int
    val pid : flock -> pid option
  end
  eqtype file_desc
  eqtype pid
  datatype whence = SEEK_SET | SEEK_CUR | SEEK_END
  datatype open_mode = O_RDONLY | O_WRONLY | O_RDWR
  datatype lock_type = F_RDLCK | F_WRLCK | F_UNLCK
  val pipe : unit -> {infd : file_desc, outfd : file_desc}
  val dup : file_desc -> file_desc
  val dup2 : {old : file_desc, new : file_desc} -> unit
  val close : file_desc -> unit
  val readVec : file_desc * int -> Word8Vector.vector
  val readArr
      : file_desc * {buf : Word8Array.array, i : int, sz : int option} -> int
  val writeVec
      : file_desc * {buf : Word8Vector.vector, i : int, sz : int option} -> int
  val writeArr
      : file_desc * {buf : Word8Array.array, i : int, sz : int option} -> int
  val dupfd : {old : file_desc, base : file_desc} -> file_desc
  val getfd : file_desc -> FD.flags
  val setfd : file_desc * FD.flags -> unit
  val getfl : file_desc -> O.flags * open_mode
  val setfl : file_desc * O.flags -> unit
  val getlk : file_desc * FLock.flock -> FLock.flock
  val setlk : file_desc * FLock.flock -> FLock.flock
  val setlkw : file_desc * FLock.flock -> FLock.flock
  val lseek : file_desc * Position.int * whence -> Position.int
  val fsync : file_desc -> unit
end

 
Type detail

file_desc

eqtype file_desc


pid

eqtype pid

 
Datatype detail

whence

datatype whence = SEEK_SET | SEEK_CUR | SEEK_END


open_mode

datatype open_mode = O_RDONLY | O_WRONLY | O_RDWR


lock_type

datatype lock_type = F_RDLCK | F_WRLCK | F_UNLCK

 
DataConstructor detail

SEEK_SET

constructor SEEK_SET : whence


SEEK_CUR

constructor SEEK_CUR : whence


SEEK_END

constructor SEEK_END : whence


O_RDONLY

constructor O_RDONLY : open_mode


O_WRONLY

constructor O_WRONLY : open_mode


O_RDWR

constructor O_RDWR : open_mode


F_RDLCK

constructor F_RDLCK : lock_type


F_WRLCK

constructor F_WRLCK : lock_type


F_UNLCK

constructor F_UNLCK : lock_type

 
Value detail

pipe

val pipe : unit -> {infd : file_desc, outfd : file_desc}


dup

val dup : file_desc -> file_desc


dup2

val dup2 : {old : file_desc, new : file_desc} -> unit


close

val close : file_desc -> unit


readVec

val readVec : file_desc * int -> Word8Vector.vector


readArr

val readArr
    : file_desc * {buf : Word8Array.array, i : int, sz : int option} -> int


writeVec

val writeVec
    : file_desc * {buf : Word8Vector.vector, i : int, sz : int option} -> int


writeArr

val writeArr
    : file_desc * {buf : Word8Array.array, i : int, sz : int option} -> int


dupfd

val dupfd : {old : file_desc, base : file_desc} -> file_desc


getfd

val getfd : file_desc -> FD.flags


setfd

val setfd : file_desc * FD.flags -> unit


getfl

val getfl : file_desc -> O.flags * open_mode


setfl

val setfl : file_desc * O.flags -> unit


getlk

val getlk : file_desc * FLock.flock -> FLock.flock


setlk

val setlk : file_desc * FLock.flock -> FLock.flock


setlkw

val setlkw : file_desc * FLock.flock -> FLock.flock


lseek

val lseek : file_desc * Position.int * whence -> Position.int


fsync

val fsync : file_desc -> unit

 


Overview  Index  Help 
Standard ML Basis Library

This document may be distributed freely over the internet as long as the copyright notice and license terms below are prominently displayed within every machine-readable copy.

Copyright © 2003 AT&T and Lucent Technologies. All rights reserved.

Permission is granted for internet users to make one paper copy for their own personal use. Further hardcopy reproduction is strictly prohibited. Permission to distribute the HTML document electronically on any medium other than the internet must be requested from the copyright holders by contacting the editors. Printed versions of the SML Basis Manual are available from Cambridge University Press. To order, please visit www.cup.org (North America) or www.cup.cam.ac.uk (outside North America).