Mercurial > repo
comparison ploki/IO.h @ 4215:7a6bc310b732
<shachaf> tar xjf ploki-0.6.5.1.tar.bz2
author | HackBot |
---|---|
date | Fri, 20 Dec 2013 22:04:38 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
4214:59a88d73e848 | 4215:7a6bc310b732 |
---|---|
1 #ifndef IO_H_ | |
2 #define IO_H_ | |
3 | |
4 #include "config.h" | |
5 #include "Str.h" | |
6 | |
7 #include <stdio.h> | |
8 | |
9 typedef struct IO IO; | |
10 | |
11 enum io_flags { | |
12 IO_BINARY = 1, | |
13 IO_READ = 2 * IO_BINARY, | |
14 IO_WRITE = 2 * IO_READ, | |
15 IO_APPEND = 2 * IO_WRITE, | |
16 IO_TRUNCATE = 2 * IO_APPEND, | |
17 IO_BUFFERED = 2 * IO_TRUNCATE, | |
18 IO_AUTOFLUSH = 2 * IO_BUFFERED | |
19 }; | |
20 | |
21 enum io_whence { | |
22 IOS_START = SEEK_SET, | |
23 IOS_CUR = SEEK_CUR, | |
24 IOS_END = SEEK_END | |
25 }; | |
26 | |
27 void io_init(void); | |
28 void io_end(void); | |
29 const char *io_name(const IO *, String *); | |
30 IO *io_enter(const char *, FILE *, enum io_flags); | |
31 IO *io_open(const char *, enum io_flags); | |
32 IO *io_incr(IO *); | |
33 void io_decr(IO *); | |
34 int io_close(IO *); | |
35 | |
36 ATTR_PURE | |
37 int io_bufred(const IO *); | |
38 void io_unbuffer(IO *); | |
39 const char *io_bufptr(IO *); | |
40 | |
41 ATTR_PURE | |
42 FILE *io_fp(const IO *); | |
43 | |
44 int io_flush(IO *); | |
45 ATTR_PURE | |
46 int io_err(const IO *); | |
47 ATTR_PURE | |
48 int io_eof(const IO *); | |
49 int io_peek(IO *, size_t); | |
50 int io_cmppeek(IO *, size_t, const void *, size_t); | |
51 int io_xcmp(IO *, size_t, size_t, size_t); | |
52 | |
53 size_t io_read(IO *, String *, size_t); | |
54 int io_getc(IO *); | |
55 size_t io_getline(IO *, String *); | |
56 size_t io_write(IO *, const String *); | |
57 size_t io_write_m(IO *, const void *, size_t); | |
58 size_t io_write_s(IO *, const char *); | |
59 int io_putc(IO *, int); | |
60 | |
61 long io_tell(IO *); | |
62 int io_seek(IO *, long, enum io_whence); | |
63 void io_clearerr(IO *); | |
64 | |
65 #endif /* IO_H_ */ |