模块 IO::generic_readable
公共实例方法
read_nonblock(integer[, outbuf [, opts]]) → string 点击切换源代码
类似于 read,但在字符串末尾引发 EOFError,除非传入 +exception: false+ 选项。
static VALUE
strio_read_nonblock(int argc, VALUE *argv, VALUE self)
{
VALUE opts = Qnil, val;
rb_scan_args(argc, argv, "11:", NULL, NULL, &opts);
if (!NIL_P(opts)) {
argc--;
}
val = strio_read(argc, argv, self);
if (NIL_P(val)) {
if (!NIL_P(opts) &&
rb_hash_lookup2(opts, sym_exception, Qundef) == Qfalse)
return Qnil;
else
rb_eof_error();
}
return val;
}
readbyte → byte 点击切换源代码
类似于 getbyte,但如果已到达流末尾则会引发异常;请参阅字节 IO。
static VALUE
strio_readbyte(VALUE self)
{
VALUE c = rb_funcallv(self, rb_intern("getbyte"), 0, 0);
if (NIL_P(c)) rb_eof_error();
return c;
}
readchar → string 点击切换源代码
类似于 getc,但如果已到达流末尾则会引发异常;请参阅字符 IO。
static VALUE
strio_readchar(VALUE self)
{
VALUE c = rb_funcallv(self, rb_intern("getc"), 0, 0);
if (NIL_P(c)) rb_eof_error();
return c;
}
readline(sep = $/, chomp: false) → string 点击切换源代码
readline(limit, chomp: false) → string
readline(sep, limit, chomp: false) → string
像 IO#gets 一样读取一行,但如果已到达文件末尾则会引发 EOFError;请参阅行 IO。
static VALUE
strio_readline(int argc, VALUE *argv, VALUE self)
{
VALUE line = rb_funcallv_kw(self, rb_intern("gets"), argc, argv, RB_PASS_CALLED_KEYWORDS);
if (NIL_P(line)) rb_eof_error();
return line;
}
readpartial(integer[, outbuf]) → string
类似于 read,但在字符串末尾引发 EOFError,而不是返回 nil,就像 IO#sysread 一样。
别名:sysread
sysread(integer[, outbuf]) → string 点击切换源代码
类似于 read,但在字符串末尾引发 EOFError,而不是返回 nil,就像 IO#sysread 一样。
static VALUE
strio_sysread(int argc, VALUE *argv, VALUE self)
{
VALUE val = rb_funcallv_kw(self, rb_intern("read"), argc, argv, RB_PASS_CALLED_KEYWORDS);
if (NIL_P(val)) {
rb_eof_error();
}
return val;
}
也别名为:readpartial