io.c:645
static VALUE
rb_io_inspect(obj)
    VALUE obj;
{
    OpenFile *fptr;
    char *buf, *cname;

    fptr = RFILE(rb_io_taint_check(obj))->fptr;
    if (!fptr || !(fptr->f || fptr->f2) || !fptr->path) return rb_any_to_s(obj);
    cname = rb_obj_classname(obj);
    buf = ALLOCA_N(char, strlen(cname) + strlen(fptr->path) + 5);
    sprintf(buf, "#<%s:%s>", cname, fptr->path);
    return rb_str_new2(buf);
}
