Commit | Line | Data |
---|---|---|
7f918cf1 CE |
1 | signature POSIX_IO_1997 = |
2 | sig | |
3 | eqtype file_desc | |
4 | eqtype pid | |
5 | ||
6 | val pipe: unit -> {infd: file_desc, outfd: file_desc} | |
7 | val dup: file_desc -> file_desc | |
8 | val dup2: {old: file_desc, new: file_desc} -> unit | |
9 | ||
10 | val close: file_desc -> unit | |
11 | val readVec: file_desc * int -> Word8Vector.vector | |
12 | val readArr: file_desc * {buf: Word8Array.array, | |
13 | i: int, | |
14 | sz: int option} -> int | |
15 | val writeVec: file_desc * {buf: Word8Vector.vector, | |
16 | i: int, | |
17 | sz: int option} -> int | |
18 | val writeArr: file_desc * {buf: Word8Array.array, | |
19 | i: int, | |
20 | sz: int option} -> int | |
21 | ||
22 | datatype whence = SEEK_SET | SEEK_CUR | SEEK_END | |
23 | ||
24 | structure FD: | |
25 | sig | |
26 | include POSIX_FLAGS_1997 | |
27 | ||
28 | val cloexec: flags | |
29 | end | |
30 | ||
31 | structure O: | |
32 | sig | |
33 | include POSIX_FLAGS_1997 | |
34 | ||
35 | val append: flags | |
36 | val nonblock: flags | |
37 | val sync: flags | |
38 | end | |
39 | ||
40 | datatype open_mode = O_RDONLY | O_WRONLY | O_RDWR | |
41 | ||
42 | val dupfd: {old: file_desc, base: file_desc} -> file_desc | |
43 | val getfd: file_desc -> FD.flags | |
44 | val setfd: file_desc * FD.flags -> unit | |
45 | val getfl: file_desc -> O.flags * open_mode | |
46 | val setfl: file_desc * O.flags -> unit | |
47 | val lseek: file_desc * Position.int * whence -> Position.int | |
48 | val fsync: file_desc -> unit | |
49 | ||
50 | datatype lock_type = | |
51 | F_RDLCK | |
52 | | F_WRLCK | |
53 | | F_UNLCK | |
54 | ||
55 | structure FLock: | |
56 | sig | |
57 | type flock | |
58 | val flock: { | |
59 | ltype: lock_type, | |
60 | whence: whence, | |
61 | start: Position.int, | |
62 | len: Position.int, | |
63 | pid: pid option | |
64 | } -> flock | |
65 | val ltype: flock -> lock_type | |
66 | val whence: flock -> whence | |
67 | val start: flock -> Position.int | |
68 | val len: flock -> Position.int | |
69 | val pid: flock -> pid option | |
70 | end | |
71 | ||
72 | val getlk: file_desc * FLock.flock -> FLock.flock | |
73 | val setlk: file_desc * FLock.flock -> FLock.flock | |
74 | val setlkw: file_desc * FLock.flock -> FLock.flock | |
75 | end |