diff options
| author | Tomoyuki Sahara <[email protected]> | 2014-02-25 12:19:52 +0900 |
|---|---|---|
| committer | Tomoyuki Sahara <[email protected]> | 2014-02-25 12:19:52 +0900 |
| commit | 56a8c592dd02cc603a57669b37035f4b8054c587 (patch) | |
| tree | 0b990167d2f95ba8285debb7df1e17a71d78a61e /src | |
| parent | 7fd585bae174751e69b3a5e3a65e18eabaf7b1bd (diff) | |
| download | mruby-56a8c592dd02cc603a57669b37035f4b8054c587.tar.gz mruby-56a8c592dd02cc603a57669b37035f4b8054c587.zip | |
add IO.read
Diffstat (limited to 'src')
| -rw-r--r-- | src/io.c | 15 |
1 files changed, 13 insertions, 2 deletions
@@ -3,7 +3,6 @@ */ #include "mruby.h" - #include "mruby/hash.h" #include "mruby/data.h" #include "mruby/khash.h" @@ -373,6 +372,17 @@ mrb_io_s_for_fd(mrb_state *mrb, mrb_value klass) } mrb_value +mrb_io_s_sysclose(mrb_state *mrb, mrb_value klass) +{ + mrb_int fd; + mrb_get_args(mrb, "i", &fd); + if (close(fd) == -1) { + mrb_sys_fail(mrb, "close"); + } + return mrb_fixnum_value(0); +} + +mrb_value mrb_io_s_sysopen(mrb_state *mrb, mrb_value klass) { mrb_value path = mrb_nil_value(); @@ -741,9 +751,10 @@ mrb_init_io(mrb_state *mrb) mrb_include_module(mrb, io, mrb_module_get(mrb, "Enumerable")); /* 15.2.20.3 */ mrb_define_class_method(mrb, io, "_popen", mrb_io_s_popen, MRB_ARGS_ANY()); + mrb_define_class_method(mrb, io, "_sysclose", mrb_io_s_sysclose, MRB_ARGS_REQ(1)); mrb_define_class_method(mrb, io, "for_fd", mrb_io_s_for_fd, MRB_ARGS_REQ(1)|MRB_ARGS_OPT(2)); - mrb_define_class_method(mrb, io, "sysopen", mrb_io_s_sysopen, MRB_ARGS_ANY()); mrb_define_class_method(mrb, io, "select", mrb_io_s_select, MRB_ARGS_ANY()); + mrb_define_class_method(mrb, io, "sysopen", mrb_io_s_sysopen, MRB_ARGS_ANY()); mrb_define_method(mrb, io, "initialize", mrb_io_initialize, MRB_ARGS_ANY()); /* 15.2.20.5.21 (x)*/ mrb_define_method(mrb, io, "sysread", mrb_io_sysread, MRB_ARGS_ANY()); |
