Method: IO#rewind
- Defined in:
- io.c
permalink #rewind ⇒ 0
Repositions the stream to its beginning, setting both the position and the line number to zero; see Position and Line Number:
f = File.open('t.txt')
f.tell # => 0
f.lineno # => 0
f.gets # => "First line\n"
f.tell # => 12
f.lineno # => 1
f.rewind # => 0
f.tell # => 0
f.lineno # => 0
f.close
Note that this method cannot be used with streams such as pipes, ttys, and sockets.
2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 |
# File 'io.c', line 2591
static VALUE
rb_io_rewind(VALUE io)
{
rb_io_t *fptr;
GetOpenFile(io, fptr);
if (io_seek(fptr, 0L, 0) < 0 && errno) rb_sys_fail_path(fptr->pathv);
if (io == ARGF.current_file) {
ARGF.lineno -= fptr->lineno;
}
fptr->lineno = 0;
if (fptr->readconv) {
clear_readconv(fptr);
}
return INT2FIX(0);
}
|