io.c:236
void
rb_io_check_writable(fptr)
    OpenFile *fptr;
{
    rb_io_check_closed(fptr);
    if (!(fptr->mode & FMODE_WRITABLE)) {
	rb_raise(rb_eIOError, "not opened for writing");
    }
#if NEED_IO_SEEK_BETWEEN_RW
    if ((fptr->mode & FMODE_RBUF) && !fptr->f2) {
	io_seek(fptr, 0, SEEK_CUR);
    }
#endif
}
