APIdock / Ruby
/
method

syswrite

ruby latest stable - Class: IO
syswrite(p1)
public

Writes the given string to ios using a low-level write. Returns the number of bytes written. Do not mix with other methods that write to ios or you may get unpredictable results. Raises SystemCallError on error.

f = File .new ("out", "w")
f.syswrite ("ABCDEF") #=> 6
static VALUE
rb_io_syswrite(VALUE io, VALUE str)
{
 VALUE tmp;
 rb_io_t *fptr;
 long n, len;
 const char *ptr;
 if (!RB_TYPE_P(str, T_STRING))
 str = rb_obj_as_string(str);
 io = GetWriteIO(io);
 GetOpenFile(io, fptr);
 rb_io_check_writable(fptr);
 if (fptr->wbuf.len) {
 rb_warn("syswrite for buffered IO");
 }
 tmp = rb_str_tmp_frozen_acquire(str);
 RSTRING_GETMEM(tmp, ptr, len);
 n = rb_write_internal(fptr->fd, ptr, len);
 if (n == -1) rb_sys_fail_path(fptr->pathv);
 rb_str_tmp_frozen_release(str, tmp);
 return LONG2FIX(n);
}

AltStyle によって変換されたページ (->オリジナル) /