Add 'mrbgems/mruby-io/' from commit '3c8e1f94c44252c836f79a48bb17726da28e2756'
[mruby.git] / mrbgems / mruby-io / include / mruby / ext / io.h
blob8f412fc02d3ee0321147f21c50a012458bbaee41
1 /*
2 ** io.h - IO class
3 */
5 #ifndef MRUBY_IO_H
6 #define MRUBY_IO_H
8 #if defined(__cplusplus)
9 extern "C" {
10 #endif
12 struct mrb_io {
13 int fd; /* file descriptor, or -1 */
14 int fd2; /* file descriptor to write if it's different from fd, or -1 */
15 int pid; /* child's pid (for pipes) */
16 unsigned int readable:1,
17 writable:1,
18 sync:1;
21 #define FMODE_READABLE 0x00000001
22 #define FMODE_WRITABLE 0x00000002
23 #define FMODE_READWRITE (FMODE_READABLE|FMODE_WRITABLE)
24 #define FMODE_BINMODE 0x00000004
25 #define FMODE_APPEND 0x00000040
26 #define FMODE_CREATE 0x00000080
27 #define FMODE_TRUNC 0x00000800
29 #define E_IO_ERROR (mrb_class_get(mrb, "IOError"))
30 #define E_EOF_ERROR (mrb_class_get(mrb, "EOFError"))
32 mrb_value mrb_io_fileno(mrb_state *mrb, mrb_value io);
34 #if defined(__cplusplus)
35 } /* extern "C" { */
36 #endif
37 #endif /* MRUBY_IO_H */