Preview Ruby 4.1 is a preview. It can change before the final release. Switch to Ruby 4.0 →
instance method
IO#closed?
() -> bool
closed? → true or false
io.c
View on GitHub ↗
VALUE
rb_io_closed_p(VALUE io)
{
rb_io_t *fptr;
VALUE write_io;
rb_io_t *write_fptr;
write_io = GetWriteIO(io);
if (io != write_io) {
write_fptr = RFILE(write_io)->fptr;
if (write_fptr && 0 <= write_fptr->fd) {
return Qfalse;
}
}
fptr = rb_io_get_fptr(io);
return RBOOL(0 > fptr->fd);
}
Returns true if the stream is closed for both reading and writing, false otherwise. See Open and Closed Streams.
Example
IO.popen('ruby', 'r+') do |pipe| puts pipe.closed? pipe.close_read puts pipe.closed? pipe.close_write puts pipe.closed? end
Output:
Example
false false true
Related: IO#close_read, IO#close_write, IO#close.
See also
#close
#close_on_exec=
#clear_screen
#close_on_exec?
also in
4.0 · 3.4 · 3.3 · 3.2 · 3.1 · 3.0