Data Structures | Defines | Typedefs | Functions | Variables

io.c File Reference

#include "ruby/ruby.h"
#include "ruby/io.h"
#include "dln.h"
#include <ctype.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include "ruby/util.h"
Include dependency graph for io.c:

Go to the source code of this file.

Data Structures

struct  argf
struct  io_internal_struct
struct  binwrite_arg
struct  finish_writeconv_arg
struct  sysopen_struct
struct  pipe_list
struct  select_args
struct  foreach_arg
struct  seek_arg
struct  copy_stream_struct
struct  argf_call_arg

Defines

#define free(x)   xfree(x)
#define off_t   long
#define NOFILE   64
#define O_ACCMODE   (O_RDONLY | O_WRONLY | O_RDWR)
#define PIPE_BUF   512
#define numberof(array)   (int)(sizeof(array) / sizeof((array)[0]))
#define IO_RBUF_CAPA_MIN   8192
#define IO_CBUF_CAPA_MIN   (128*1024)
#define IO_RBUF_CAPA_FOR(fptr)   (NEED_READCONV(fptr) ? IO_CBUF_CAPA_MIN : IO_RBUF_CAPA_MIN)
#define IO_WBUF_CAPA_MIN   8192
#define UPDATE_MAXFD(fd)
#define argf_of(obj)   (*(struct argf *)DATA_PTR(obj))
#define ARGF   argf_of(argf)
#define STDIO_READ_DATA_PENDING(fp)   (!feof(fp))
#define GetWriteIO(io)   rb_io_get_write_io(io)
#define READ_DATA_PENDING(fptr)   ((fptr)->rbuf_len)
#define READ_DATA_PENDING_COUNT(fptr)   ((fptr)->rbuf_len)
#define READ_DATA_PENDING_PTR(fptr)   ((fptr)->rbuf+(fptr)->rbuf_off)
#define READ_DATA_BUFFERED(fptr)   READ_DATA_PENDING(fptr)
#define READ_CHAR_PENDING(fptr)   ((fptr)->cbuf_len)
#define READ_CHAR_PENDING_COUNT(fptr)   ((fptr)->cbuf_len)
#define READ_CHAR_PENDING_PTR(fptr)   ((fptr)->cbuf+(fptr)->cbuf_off)
#define WAIT_FD_IN_WIN32(fptr)
#define READ_CHECK(fptr)
#define NEED_NEWLINE_DECORATOR_ON_READ(fptr)   (fptr->mode & FMODE_TEXTMODE)
#define NEED_NEWLINE_DECORATOR_ON_WRITE(fptr)   0
#define NEED_READCONV(fptr)   (fptr->encs.enc2 != NULL || NEED_NEWLINE_DECORATOR_ON_READ(fptr))
#define NEED_WRITECONV(fptr)   ((fptr->encs.enc != NULL && fptr->encs.enc != rb_ascii8bit_encoding()) || NEED_NEWLINE_DECORATOR_ON_WRITE(fptr) || (fptr->encs.ecflags & (ECONV_DECORATOR_MASK|ECONV_STATEFUL_DECORATOR_MASK)))
#define shutdown(a, b)   0
#define rb_sys_fail_path(path)   rb_sys_fail(NIL_P(path) ? 0 : RSTRING_PTR(path))
#define is_socket(fd, path)   0
#define io_seek(fptr, ofs, whence)   (errno = 0, lseek(flush_before_seek(fptr)->fd, ofs, whence))
#define io_tell(fptr)   lseek(flush_before_seek(fptr)->fd, 0, SEEK_CUR)
#define SEEK_SET   0
#define SEEK_CUR   1
#define SEEK_END   2
#define FMODE_SYNCWRITE   (FMODE_SYNC|FMODE_WRITABLE)
#define S_ISREG(m)   ((m & S_IFMT) == S_IFREG)
#define rb_io_fsync   rb_f_notimplement
#define rb_io_fdatasync   rb_f_notimplement
#define SMALLBUF   100
#define MORE_CHAR_SUSPENDED   Qtrue
#define MORE_CHAR_FINISHED   Qnil
#define rb_io_close_on_exec_p   rb_f_notimplement
#define rb_io_set_close_on_exec   rb_f_notimplement
#define FMODE_PREP   (1<<16)
#define IS_PREP_STDIO(f)   ((f)->mode & FMODE_PREP)
#define PREP_STDIO_NAME(f)   (RSTRING_PTR((f)->pathv))
#define SHUT_RD   0
#define SHUT_WR   1
#define MODE_BTMODE(a, b, c)
#define MODE_BINARY(a, b)   (a)
#define next_argv()   argf_next_argv(argf)
#define ARGF_GENERIC_INPUT_P()   (ARGF.current_file == rb_stdin && TYPE(ARGF.current_file) != T_FILE)
#define ARGF_FORWARD(argc, argv)
#define NEXT_ARGF_FORWARD(argc, argv)
#define rb_io_fcntl   rb_f_notimplement
#define rb_f_syscall   rb_f_notimplement
#define rb_intern(str)   rb_intern_const(str)
#define O_BINARY   0

Typedefs

typedef struct rb_io_enc_t convconfig_t

Functions

void Init_File (void)
struct timeval rb_time_interval (VALUE)
void rb_eof_error (void)
VALUE rb_io_taint_check (VALUE io)
void rb_io_check_initialized (rb_io_t *fptr)
void rb_io_check_closed (rb_io_t *fptr)
static int io_fflush (rb_io_t *)
VALUE rb_io_get_io (VALUE io)
static VALUE rb_io_check_io (VALUE io)
VALUE rb_io_get_write_io (VALUE io)
static VALUE rb_io_s_try_convert (VALUE dummy, VALUE io)
static void io_unread (rb_io_t *fptr)
static rb_encodingio_input_encoding (rb_io_t *fptr)
static void io_ungetbyte (VALUE str, rb_io_t *fptr)
static rb_io_tflush_before_seek (rb_io_t *fptr)
void rb_io_check_char_readable (rb_io_t *fptr)
void rb_io_check_byte_readable (rb_io_t *fptr)
void rb_io_check_readable (rb_io_t *fptr)
static rb_encodingio_read_encoding (rb_io_t *fptr)
void rb_io_check_writable (rb_io_t *fptr)
int rb_io_read_pending (rb_io_t *fptr)
void rb_read_check (FILE *fp)
void rb_io_read_check (rb_io_t *fptr)
static int ruby_dup (int orig)
static VALUE io_alloc (VALUE klass)
static int wsplit_p (rb_io_t *fptr)
static VALUE internal_read_func (void *ptr)
static VALUE internal_write_func (void *ptr)
static ssize_t rb_read_internal (int fd, void *buf, size_t count)
static ssize_t rb_write_internal (int fd, void *buf, size_t count)
static long io_writable_length (rb_io_t *fptr, long l)
static VALUE io_flush_buffer_sync (void *arg)
static VALUE io_flush_buffer_async (VALUE arg)
static int io_flush_buffer (rb_io_t *fptr)
int rb_io_wait_readable (int f)
int rb_io_wait_writable (int f)
static void make_writeconv (rb_io_t *fptr)
static VALUE io_binwrite_string (VALUE arg)
static long io_binwrite (VALUE str, rb_io_t *fptr, int nosync)
static VALUE do_writeconv (VALUE str, rb_io_t *fptr)
static long io_fwrite (VALUE str, rb_io_t *fptr, int nosync)
static VALUE io_write (VALUE io, VALUE str, int nosync)
static VALUE io_write_m (VALUE io, VALUE str)
VALUE rb_io_write (VALUE io, VALUE str)
VALUE rb_io_addstr (VALUE io, VALUE str)
VALUE rb_io_flush (VALUE io)
static VALUE rb_io_tell (VALUE io)
static VALUE rb_io_seek (VALUE io, VALUE offset, int whence)
static VALUE rb_io_seek_m (int argc, VALUE *argv, VALUE io)
static VALUE rb_io_set_pos (VALUE io, VALUE offset)
static void clear_readconv (rb_io_t *fptr)
static VALUE rb_io_rewind (VALUE io)
static int io_fillbuf (rb_io_t *fptr)
VALUE rb_io_eof (VALUE io)
static VALUE rb_io_sync (VALUE io)
static VALUE rb_io_set_sync (VALUE io, VALUE sync)
static VALUE rb_io_fileno (VALUE io)
static VALUE rb_io_pid (VALUE io)
static VALUE rb_io_inspect (VALUE obj)
static VALUE rb_io_to_io (VALUE io)
static long read_buffered_data (char *ptr, long len, rb_io_t *fptr)
static long io_fread (VALUE str, long offset, rb_io_t *fptr)
static long remain_size (rb_io_t *fptr)
static VALUE io_enc_str (VALUE str, rb_io_t *fptr)
static void make_readconv (rb_io_t *fptr, int size)
static VALUE fill_cbuf (rb_io_t *fptr, int ec_flags)
static VALUE more_char (rb_io_t *fptr)
static VALUE io_shift_cbuf (rb_io_t *fptr, int len, VALUE *strp)
static VALUE read_all (rb_io_t *fptr, long siz, VALUE str)
void rb_io_set_nonblock (rb_io_t *fptr)
static VALUE io_getpartial (int argc, VALUE *argv, VALUE io, int nonblock)
static VALUE io_readpartial (int argc, VALUE *argv, VALUE io)
static VALUE io_read_nonblock (int argc, VALUE *argv, VALUE io)
static VALUE rb_io_write_nonblock (VALUE io, VALUE str)
static VALUE io_read (int argc, VALUE *argv, VALUE io)
static void rscheck (const char *rsptr, long rslen, VALUE rs)
static int appendline (rb_io_t *fptr, int delim, VALUE *strp, long *lp)
static int swallow (rb_io_t *fptr, int term)
static VALUE rb_io_getline_fast (rb_io_t *fptr, rb_encoding *enc, VALUE io)
static void prepare_getline_args (int argc, VALUE *argv, VALUE *rsp, long *limit, VALUE io)
static VALUE rb_io_getline_1 (VALUE rs, long limit, VALUE io)
static VALUE rb_io_getline (int argc, VALUE *argv, VALUE io)
VALUE rb_io_gets (VALUE io)
static VALUE rb_io_gets_m (int argc, VALUE *argv, VALUE io)
static VALUE rb_io_lineno (VALUE io)
static VALUE rb_io_set_lineno (VALUE io, VALUE lineno)
static VALUE rb_io_readline (int argc, VALUE *argv, VALUE io)
static VALUE rb_io_readlines (int argc, VALUE *argv, VALUE io)
static VALUE rb_io_each_line (int argc, VALUE *argv, VALUE io)
static VALUE rb_io_each_byte (VALUE io)
static VALUE io_getc (rb_io_t *fptr, rb_encoding *enc)
static VALUE rb_io_each_char (VALUE io)
static VALUE rb_io_each_codepoint (VALUE io)
static VALUE rb_io_getc (VALUE io)
static VALUE rb_io_readchar (VALUE io)
VALUE rb_io_getbyte (VALUE io)
static VALUE rb_io_readbyte (VALUE io)
VALUE rb_io_ungetbyte (VALUE io, VALUE b)
VALUE rb_io_ungetc (VALUE io, VALUE c)
static VALUE rb_io_isatty (VALUE io)
static VALUE finish_writeconv (rb_io_t *fptr, int noalloc)
static VALUE finish_writeconv_sync (VALUE arg)
static void fptr_finalize (rb_io_t *fptr, int noraise)
static void rb_io_fptr_cleanup (rb_io_t *fptr, int noraise)
static void clear_writeconv (rb_io_t *fptr)
static void clear_codeconv (rb_io_t *fptr)
int rb_io_fptr_finalize (rb_io_t *fptr)
size_t rb_econv_memsize (rb_econv_t *)
size_t rb_io_memsize (rb_io_t *fptr)
VALUE rb_io_close (VALUE io)
static VALUE rb_io_close_m (VALUE io)
static VALUE io_call_close (VALUE io)
static VALUE io_close (VALUE io)
static VALUE rb_io_closed (VALUE io)
static VALUE rb_io_close_read (VALUE io)
static VALUE rb_io_close_write (VALUE io)
static VALUE rb_io_sysseek (int argc, VALUE *argv, VALUE io)
static VALUE rb_io_syswrite (VALUE io, VALUE str)
static VALUE rb_io_sysread (int argc, VALUE *argv, VALUE io)
VALUE rb_io_binmode (VALUE io)
VALUE rb_io_ascii8bit_binmode (VALUE io)
static VALUE rb_io_binmode_m (VALUE io)
static VALUE rb_io_binmode_p (VALUE io)
static const char * rb_io_fmode_modestr (int fmode)
static int io_encname_bom_p (const char *name, long len)
int rb_io_modestr_fmode (const char *modestr)
int rb_io_oflags_fmode (int oflags)
static int rb_io_fmode_oflags (int fmode)
int rb_io_modestr_oflags (const char *modestr)
static const char * rb_io_oflags_modestr (int oflags)
static void rb_io_ext_int_to_encs (rb_encoding *ext, rb_encoding *intern, rb_encoding **enc, rb_encoding **enc2)
static void parse_mode_enc (const char *estr, rb_encoding **enc_p, rb_encoding **enc2_p, int *fmode_p)
static void mode_enc (rb_io_t *fptr, const char *estr)
static void rb_io_mode_enc (rb_io_t *fptr, const char *modestr)
int rb_io_extract_encoding_option (VALUE opt, rb_encoding **enc_p, rb_encoding **enc2_p, int *fmode_p)
static void validate_enc_binmode (int fmode, rb_encoding *enc, rb_encoding *enc2)
static void extract_binmode (VALUE opthash, int *fmode)
static void rb_io_extract_modeenc (VALUE *vmode_p, VALUE *vperm_p, VALUE opthash, int *oflags_p, int *fmode_p, convconfig_t *convconfig_p)
static VALUE sysopen_func (void *ptr)
static int rb_sysopen_internal (struct sysopen_struct *data)
static int rb_sysopen (VALUE fname, int oflags, mode_t perm)
FILErb_fdopen (int fd, const char *modestr)
static void io_check_tty (rb_io_t *fptr)
static VALUE rb_io_internal_encoding (VALUE)
static void io_encoding_set (rb_io_t *, VALUE, VALUE, VALUE)
static int io_strip_bom (VALUE io)
static void io_set_encoding_by_bom (VALUE io)
static VALUE rb_file_open_generic (VALUE io, VALUE filename, int oflags, int fmode, convconfig_t *convconfig, mode_t perm)
static VALUE rb_file_open_internal (VALUE io, VALUE filename, const char *modestr)
VALUE rb_file_open_str (VALUE fname, const char *modestr)
VALUE rb_file_open (const char *fname, const char *modestr)
static void pipe_add_fptr (rb_io_t *fptr)
static void pipe_del_fptr (rb_io_t *fptr)
static void pipe_atexit (void)
static void pipe_finalize (rb_io_t *fptr, int noraise)
void rb_io_synchronized (rb_io_t *fptr)
void rb_io_unbuffered (rb_io_t *fptr)
int rb_pipe (int *pipes)
static VALUE pipe_open (struct rb_exec_arg *eargp, VALUE prog, const char *modestr, int fmode, convconfig_t *convconfig)
static VALUE pipe_open_v (int argc, VALUE *argv, const char *modestr, int fmode, convconfig_t *convconfig)
static VALUE pipe_open_s (VALUE prog, const char *modestr, int fmode, convconfig_t *convconfig)
static VALUE pop_last_hash (int *argc_p, VALUE *argv)
static VALUE rb_io_s_popen (int argc, VALUE *argv, VALUE klass)
static void rb_scan_open_args (int argc, VALUE *argv, VALUE *fname_p, int *oflags_p, int *fmode_p, convconfig_t *convconfig_p, mode_t *perm_p)
static VALUE rb_open_file (int argc, VALUE *argv, VALUE io)
static VALUE rb_io_s_open (int argc, VALUE *argv, VALUE klass)
static VALUE rb_io_s_sysopen (int argc, VALUE *argv)
static VALUE check_pipe_command (VALUE filename_or_command)
static VALUE rb_f_open (int argc, VALUE *argv)
static VALUE rb_io_open (VALUE filename, VALUE vmode, VALUE vperm, VALUE opt)
static VALUE rb_io_open_with_args (int argc, VALUE *argv)
static VALUE io_reopen (VALUE io, VALUE nfile)
static VALUE rb_io_reopen (int argc, VALUE *argv, VALUE file)
static VALUE rb_io_init_copy (VALUE dest, VALUE io)
VALUE rb_io_printf (int argc, VALUE *argv, VALUE out)
static VALUE rb_f_printf (int argc, VALUE *argv)
VALUE rb_io_print (int argc, VALUE *argv, VALUE out)
static VALUE rb_f_print (int argc, VALUE *argv)
static VALUE rb_io_putc (VALUE io, VALUE ch)
static VALUE rb_f_putc (VALUE recv, VALUE ch)
static VALUE io_puts_ary (VALUE ary, VALUE out, int recur)
VALUE rb_io_puts (int argc, VALUE *argv, VALUE out)
static VALUE rb_f_puts (int argc, VALUE *argv, VALUE recv)
void rb_p (VALUE obj)
static VALUE rb_f_p (int argc, VALUE *argv, VALUE self)
static VALUE rb_obj_display (int argc, VALUE *argv, VALUE self)
void rb_write_error2 (const char *mesg, long len)
void rb_write_error (const char *mesg)
static void must_respond_to (ID mid, VALUE val, ID id)
static void stdout_setter (VALUE val, ID id, VALUE *variable)
static VALUE prep_io (int fd, int fmode, VALUE klass, const char *path)
VALUE rb_io_fdopen (int fd, int oflags, const char *path)
static VALUE prep_stdio (FILE *f, int fmode, VALUE klass, const char *path)
FILErb_io_stdio_file (rb_io_t *fptr)
static VALUE rb_io_initialize (int argc, VALUE *argv, VALUE io)
static VALUE rb_file_initialize (int argc, VALUE *argv, VALUE io)
static VALUE rb_io_s_new (int argc, VALUE *argv, VALUE klass)
static VALUE rb_io_s_for_fd (int argc, VALUE *argv, VALUE klass)
static VALUE rb_io_autoclose_p (VALUE io)
static VALUE rb_io_set_autoclose (VALUE io, VALUE autoclose)
static void argf_mark (void *ptr)
static void argf_free (void *ptr)
static void argf_init (struct argf *p, VALUE v)
static VALUE argf_alloc (VALUE klass)
static VALUE argf_initialize (VALUE argf, VALUE argv)
static VALUE argf_initialize_copy (VALUE argf, VALUE orig)
static VALUE argf_set_lineno (VALUE argf, VALUE val)
static VALUE argf_lineno (VALUE argf)
static VALUE argf_forward (int argc, VALUE *argv, VALUE argf)
static void argf_close (VALUE file)
static int argf_next_argv (VALUE argf)
static VALUE argf_getline (int argc, VALUE *argv, VALUE argf)
static VALUE argf_lineno_getter (ID id, VALUE *var)
static void argf_lineno_setter (VALUE val, ID id, VALUE *var)
static VALUE argf_gets (int, VALUE *, VALUE)
static VALUE rb_f_gets (int argc, VALUE *argv, VALUE recv)
VALUE rb_gets (void)
static VALUE argf_readline (int, VALUE *, VALUE)
static VALUE rb_f_readline (int argc, VALUE *argv, VALUE recv)
static VALUE argf_readlines (int, VALUE *, VALUE)
static VALUE rb_f_readlines (int argc, VALUE *argv, VALUE recv)
static VALUE rb_f_backquote (VALUE obj, VALUE str)
static VALUE select_internal (VALUE read, VALUE write, VALUE except, struct timeval *tp, rb_fdset_t *fds)
static VALUE rb_f_select (int argc, VALUE *argv, VALUE obj)
static int io_cntl (int fd, unsigned long cmd, long narg, int io_p)
static VALUE rb_io_ctl (VALUE io, VALUE req, VALUE arg, int io_p)
static VALUE rb_io_ioctl (int argc, VALUE *argv, VALUE io)
static VALUE io_new_instance (VALUE args)
static VALUE pipe_pair_close (VALUE rw)
static VALUE rb_io_s_pipe (int argc, VALUE *argv, VALUE klass)
static void open_key_args (int argc, VALUE *argv, struct foreach_arg *arg)
static VALUE io_s_foreach (struct foreach_arg *arg)
static VALUE rb_io_s_foreach (int argc, VALUE *argv, VALUE self)
static VALUE io_s_readlines (struct foreach_arg *arg)
static VALUE rb_io_s_readlines (int argc, VALUE *argv, VALUE io)
static VALUE io_s_read (struct foreach_arg *arg)
static VALUE seek_before_access (VALUE argp)
static VALUE rb_io_s_read (int argc, VALUE *argv, VALUE io)
static VALUE rb_io_s_binread (int argc, VALUE *argv, VALUE io)
static int maygvl_copy_stream_wait_read (struct copy_stream_struct *stp)
static int nogvl_copy_stream_wait_write (struct copy_stream_struct *stp)
static ssize_t maygvl_copy_stream_read (struct copy_stream_struct *stp, char *buf, size_t len, off_t offset)
static int nogvl_copy_stream_write (struct copy_stream_struct *stp, char *buf, size_t len)
static void nogvl_copy_stream_read_write (struct copy_stream_struct *stp)
static VALUE nogvl_copy_stream_func (void *arg)
static VALUE copy_stream_fallback_body (VALUE arg)
static VALUE copy_stream_fallback (struct copy_stream_struct *stp)
static VALUE copy_stream_body (VALUE arg)
static VALUE copy_stream_finalize (VALUE arg)
static VALUE rb_io_s_copy_stream (int argc, VALUE *argv, VALUE io)
static VALUE rb_io_external_encoding (VALUE io)
static VALUE rb_io_set_encoding (int argc, VALUE *argv, VALUE io)
void rb_stdio_set_default_encoding (void)
static VALUE argf_external_encoding (VALUE argf)
static VALUE argf_internal_encoding (VALUE argf)
static VALUE argf_set_encoding (int argc, VALUE *argv, VALUE argf)
static VALUE argf_tell (VALUE argf)
static VALUE argf_seek_m (int argc, VALUE *argv, VALUE argf)
static VALUE argf_set_pos (VALUE argf, VALUE offset)
static VALUE argf_rewind (VALUE argf)
static VALUE argf_fileno (VALUE argf)
static VALUE argf_to_io (VALUE argf)
static VALUE argf_eof (VALUE argf)
static VALUE argf_read (int argc, VALUE *argv, VALUE argf)
static VALUE argf_forward_call (VALUE arg)
static VALUE argf_readpartial (int argc, VALUE *argv, VALUE argf)
static VALUE argf_getc (VALUE argf)
static VALUE argf_getbyte (VALUE argf)
static VALUE argf_readchar (VALUE argf)
static VALUE argf_readbyte (VALUE argf)
static VALUE argf_each_line (int argc, VALUE *argv, VALUE argf)
static VALUE argf_each_byte (VALUE argf)
static VALUE argf_each_char (VALUE argf)
static VALUE argf_filename (VALUE argf)
static VALUE argf_filename_getter (ID id, VALUE *var)
static VALUE argf_file (VALUE argf)
static VALUE argf_binmode_m (VALUE argf)
static VALUE argf_binmode_p (VALUE argf)
static VALUE argf_skip (VALUE argf)
static VALUE argf_close_m (VALUE argf)
static VALUE argf_closed (VALUE argf)
static VALUE argf_to_s (VALUE argf)
static VALUE argf_inplace_mode_get (VALUE argf)
static VALUE opt_i_get (ID id, VALUE *var)
static VALUE argf_inplace_mode_set (VALUE argf, VALUE val)
static void opt_i_set (VALUE val, ID id, VALUE *var)
const char * ruby_get_inplace_mode (void)
void ruby_set_inplace_mode (const char *suffix)
static VALUE argf_argv (VALUE argf)
static VALUE argf_argv_getter (ID id, VALUE *var)
VALUE rb_get_argv (void)
void Init_IO (void)

Variables

VALUE rb_cIO
VALUE rb_eEOFError
VALUE rb_eIOError
VALUE rb_mWaitReadable
VALUE rb_mWaitWritable
VALUE rb_stdin
VALUE rb_stdout
VALUE rb_stderr
VALUE rb_deferr
static VALUE orig_stdout
static VALUE orig_stderr
VALUE rb_output_fs
VALUE rb_rs
VALUE rb_output_rs
VALUE rb_default_rs
static VALUE argf
static ID id_write
static ID id_read
static ID id_getc
static ID id_flush
static ID id_readpartial
static VALUE sym_mode
static VALUE sym_perm
static VALUE sym_extenc
static VALUE sym_intenc
static VALUE sym_encoding
static VALUE sym_open_args
static VALUE sym_textmode
static VALUE sym_binmode
static VALUE sym_autoclose
static int max_file_descriptor = NOFILE
static struct pipe_listpipe_list

Define Documentation

#define ARGF   argf_of(argf)
#define ARGF_FORWARD (   argc,
  argv 
)
#define ARGF_GENERIC_INPUT_P (  )     (ARGF.current_file == rb_stdin && TYPE(ARGF.current_file) != T_FILE)

Definition at line 6710 of file io.c.

Referenced by argf_getc(), argf_getline(), argf_read(), and argf_readpartial().

#define argf_of (   obj  )     (*(struct argf *)DATA_PTR(obj))

Definition at line 163 of file io.c.

Referenced by argf_initialize_copy().

#define FMODE_PREP   (1<<16)

Definition at line 3345 of file io.c.

Referenced by prep_stdio(), and rb_io_autoclose_p().

#define FMODE_SYNCWRITE   (FMODE_SYNC|FMODE_WRITABLE)

Definition at line 410 of file io.c.

#define free (   x  )     xfree(x)
#define GetWriteIO (   io  )     rb_io_get_write_io(io)
#define IO_CBUF_CAPA_MIN   (128*1024)

Definition at line 113 of file io.c.

Referenced by make_readconv().

#define IO_RBUF_CAPA_FOR (   fptr  )     (NEED_READCONV(fptr) ? IO_CBUF_CAPA_MIN : IO_RBUF_CAPA_MIN)

Definition at line 114 of file io.c.

Referenced by io_fillbuf(), and io_ungetbyte().

#define IO_RBUF_CAPA_MIN   8192

Definition at line 112 of file io.c.

#define io_seek (   fptr,
  ofs,
  whence 
)    (errno = 0, lseek(flush_before_seek(fptr)->fd, ofs, whence))

Definition at line 401 of file io.c.

Referenced by io_reopen(), rb_io_init_copy(), rb_io_rewind(), rb_io_seek(), and rb_io_set_pos().

#define io_tell (   fptr  )     lseek(flush_before_seek(fptr)->fd, 0, SEEK_CUR)

Definition at line 402 of file io.c.

Referenced by io_reopen(), rb_io_init_copy(), and rb_io_tell().

#define IO_WBUF_CAPA_MIN   8192

Definition at line 115 of file io.c.

#define IS_PREP_STDIO (   f  )     ((f)->mode & FMODE_PREP)

Definition at line 3346 of file io.c.

Referenced by fptr_finalize(), io_reopen(), and rb_io_reopen().

#define is_socket (   fd,
  path 
)    0

Definition at line 243 of file io.c.

Referenced by rb_io_close_read(), and rb_io_close_write().

#define MODE_BINARY (   a,
  b 
)    (a)

Referenced by rb_io_oflags_modestr().

#define MODE_BTMODE (   a,
  b,
  c 
)
Value:
((fmode & FMODE_BINMODE) ? (b) : \
                             (fmode & FMODE_TEXTMODE) ? (c) : (a))

Referenced by rb_io_fmode_modestr().

#define MORE_CHAR_FINISHED   Qnil

Definition at line 1633 of file io.c.

Referenced by appendline(), io_getc(), more_char(), rb_io_each_codepoint(), read_all(), and swallow().

#define MORE_CHAR_SUSPENDED   Qtrue

Definition at line 1632 of file io.c.

Referenced by more_char(), and read_all().

#define NEED_NEWLINE_DECORATOR_ON_READ (   fptr  )     (fptr->mode & FMODE_TEXTMODE)

Definition at line 228 of file io.c.

Referenced by make_readconv().

#define NEED_NEWLINE_DECORATOR_ON_WRITE (   fptr  )     0

Definition at line 229 of file io.c.

Referenced by make_writeconv().

#define NEED_READCONV (   fptr  )     (fptr->encs.enc2 != NULL || NEED_NEWLINE_DECORATOR_ON_READ(fptr))
#define NEED_WRITECONV (   fptr  )     ((fptr->encs.enc != NULL && fptr->encs.enc != rb_ascii8bit_encoding()) || NEED_NEWLINE_DECORATOR_ON_WRITE(fptr) || (fptr->encs.ecflags & (ECONV_DECORATOR_MASK|ECONV_STATEFUL_DECORATOR_MASK)))

Definition at line 232 of file io.c.

Referenced by do_writeconv().

#define NEXT_ARGF_FORWARD (   argc,
  argv 
)
Value:
do {\
    if (!next_argv()) return Qnil;\
    ARGF_FORWARD(argc, argv);\
} while (0)

Definition at line 6716 of file io.c.

Referenced by argf_readbyte().

#define next_argv (  )     argf_next_argv(argf)
#define NOFILE   64

Definition at line 71 of file io.c.

#define numberof (   array  )     (int)(sizeof(array) / sizeof((array)[0]))

Definition at line 110 of file io.c.

Referenced by rb_f_select().

#define O_ACCMODE   (O_RDONLY | O_WRONLY | O_RDWR)

Definition at line 95 of file io.c.

Referenced by Init_fcntl().

#define O_BINARY   0
#define off_t   long
#define PIPE_BUF   512

Definition at line 106 of file io.c.

Referenced by io_writable_length().

#define PREP_STDIO_NAME (   f  )     (RSTRING_PTR((f)->pathv))

Definition at line 3347 of file io.c.

Referenced by io_reopen(), and rb_io_reopen().

#define rb_f_syscall   rb_f_notimplement

Definition at line 7591 of file io.c.

Referenced by Init_IO().

#define rb_intern (   str  )     rb_intern_const(str)
#define rb_io_close_on_exec_p   rb_f_notimplement

Definition at line 3292 of file io.c.

Referenced by Init_IO().

#define rb_io_fcntl   rb_f_notimplement

Definition at line 7472 of file io.c.

Referenced by Init_IO().

#define rb_io_fdatasync   rb_f_notimplement

Definition at line 1397 of file io.c.

Referenced by Init_IO().

#define rb_io_fsync   rb_f_notimplement

Definition at line 1368 of file io.c.

Referenced by Init_IO().

#define rb_io_set_close_on_exec   rb_f_notimplement

Definition at line 3342 of file io.c.

Referenced by Init_IO().

#define rb_sys_fail_path (   path  )     rb_sys_fail(NIL_P(path) ? 0 : RSTRING_PTR(path))
#define READ_CHAR_PENDING (   fptr  )     ((fptr)->cbuf_len)
#define READ_CHAR_PENDING_COUNT (   fptr  )     ((fptr)->cbuf_len)

Definition at line 190 of file io.c.

Referenced by swallow().

#define READ_CHAR_PENDING_PTR (   fptr  )     ((fptr)->cbuf+(fptr)->cbuf_off)

Definition at line 191 of file io.c.

Referenced by swallow().

#define READ_CHECK (   fptr  ) 
#define READ_DATA_BUFFERED (   fptr  )     READ_DATA_PENDING(fptr)

Definition at line 187 of file io.c.

Referenced by rb_io_sysread(), and rb_io_sysseek().

#define READ_DATA_PENDING (   fptr  )     ((fptr)->rbuf_len)

Definition at line 184 of file io.c.

Referenced by io_fread(), rb_io_eof(), rb_io_read_check(), rb_io_read_pending(), and select_internal().

#define READ_DATA_PENDING_COUNT (   fptr  )     ((fptr)->rbuf_len)

Definition at line 185 of file io.c.

Referenced by appendline(), rb_io_getline_fast(), read_buffered_data(), remain_size(), and swallow().

#define READ_DATA_PENDING_PTR (   fptr  )     ((fptr)->rbuf+(fptr)->rbuf_off)

Definition at line 186 of file io.c.

Referenced by appendline(), rb_io_getline_fast(), and swallow().

#define S_ISREG (   m  )     ((m & S_IFMT) == S_IFREG)

Definition at line 533 of file io.c.

Referenced by remain_size(), and wsplit_p().

#define SEEK_CUR   1

Definition at line 406 of file io.c.

Referenced by fseeko(), Init_IO(), io_unread(), rb_chsize(), and remain_size().

#define SEEK_END   2

Definition at line 407 of file io.c.

Referenced by fseeko(), Init_IO(), and makroom().

#define SEEK_SET   0
#define SHUT_RD   0
#define SHUT_WR   1
#define shutdown (   a,
  b 
)    0
#define SMALLBUF   100

Definition at line 1564 of file io.c.

#define STDIO_READ_DATA_PENDING (   fp  )     (!feof(fp))

Definition at line 179 of file io.c.

Referenced by rb_read_check().

#define UPDATE_MAXFD (   fd  ) 
Value:
do { \
        if (max_file_descriptor < (fd)) max_file_descriptor = (fd); \
    } while (0)

Definition at line 158 of file io.c.

Referenced by io_cntl(), rb_io_initialize(), rb_pipe(), rb_sysopen(), and ruby_dup().

#define WAIT_FD_IN_WIN32 (   fptr  ) 

Definition at line 197 of file io.c.


Typedef Documentation

typedef struct rb_io_enc_t convconfig_t

Definition at line 4364 of file io.c.


Function Documentation

static int appendline ( rb_io_t fptr,
int  delim,
VALUE strp,
long *  lp 
) [static]
static VALUE argf_alloc ( VALUE  klass  )  [static]

Definition at line 6623 of file io.c.

References argf_free(), argf_init(), argf_mark(), Data_Make_Struct, and Qnil.

Referenced by Init_IO().

static VALUE argf_argv ( VALUE  argf  )  [static]

Definition at line 9616 of file io.c.

References ARGF.

Referenced by argf_argv_getter(), and Init_IO().

static VALUE argf_argv_getter ( ID  id,
VALUE var 
) [static]

Definition at line 9622 of file io.c.

References argf_argv().

Referenced by Init_IO().

static VALUE argf_binmode_m ( VALUE  argf  )  [static]

Definition at line 9412 of file io.c.

References ARGF, ARGF_FORWARD, next_argv, and rb_io_ascii8bit_binmode().

Referenced by Init_IO().

static VALUE argf_binmode_p ( VALUE  argf  )  [static]

Definition at line 9435 of file io.c.

References ARGF, and Qtrue.

Referenced by Init_IO().

static void argf_close ( VALUE  file  )  [static]
static VALUE argf_close_m ( VALUE  argf  )  [static]

Definition at line 9483 of file io.c.

References ARGF, argf_close(), and next_argv.

Referenced by Init_IO().

static VALUE argf_closed ( VALUE  argf  )  [static]

Definition at line 9502 of file io.c.

References ARGF, ARGF_FORWARD, next_argv, and rb_io_closed().

Referenced by Init_IO().

static VALUE argf_each_byte ( VALUE  argf  )  [static]

Definition at line 9300 of file io.c.

References ARGF, next_argv, rb_block_call, rb_intern, and RETURN_ENUMERATOR.

Referenced by Init_IO().

static VALUE argf_each_char ( VALUE  argf  )  [static]

Definition at line 9330 of file io.c.

References ARGF, next_argv, rb_block_call, rb_intern, and RETURN_ENUMERATOR.

Referenced by Init_IO().

static VALUE argf_each_line ( int  argc,
VALUE argv,
VALUE  argf 
) [static]

Definition at line 9265 of file io.c.

References ARGF, next_argv, rb_block_call, rb_intern, and RETURN_ENUMERATOR.

Referenced by Init_IO().

static VALUE argf_eof ( VALUE  argf  )  [static]

Definition at line 8893 of file io.c.

References ARGF, ARGF_FORWARD, next_argv, rb_io_eof(), and RTEST.

Referenced by Init_IO().

static VALUE argf_external_encoding ( VALUE  argf  )  [static]
static VALUE argf_file ( VALUE  argf  )  [static]

Definition at line 9394 of file io.c.

References ARGF, and next_argv.

Referenced by Init_IO().

static VALUE argf_filename ( VALUE  argf  )  [static]

Definition at line 9363 of file io.c.

References ARGF, and next_argv.

Referenced by argf_filename_getter(), and Init_IO().

static VALUE argf_filename_getter ( ID  id,
VALUE var 
) [static]

Definition at line 9370 of file io.c.

References argf_filename().

Referenced by Init_IO().

static VALUE argf_fileno ( VALUE  argf  )  [static]

Definition at line 8845 of file io.c.

References ARGF, ARGF_FORWARD, next_argv, rb_eArgError, rb_io_fileno(), and rb_raise().

Referenced by Init_IO().

static VALUE argf_forward ( int  argc,
VALUE argv,
VALUE  argf 
) [static]

Definition at line 6704 of file io.c.

References ARGF, rb_frame_this_func(), and rb_funcall3().

Referenced by argf_forward_call(), and argf_read().

static VALUE argf_forward_call ( VALUE  arg  )  [static]

Definition at line 8996 of file io.c.

References argf_call_arg::argc, argf_call_arg::argf, argf_forward(), and argf_call_arg::argv.

Referenced by argf_readpartial().

static void argf_free ( void *  ptr  )  [static]

Definition at line 6606 of file io.c.

References argf::inplace, and xfree().

Referenced by argf_alloc().

static VALUE argf_getbyte ( VALUE  argf  )  [static]

Definition at line 9136 of file io.c.

References ARGF, argf_close(), next_argv, NIL_P, rb_funcall3(), rb_intern, rb_io_getbyte(), T_FILE, and TYPE.

Referenced by argf_readbyte(), and Init_IO().

static VALUE argf_getc ( VALUE  argf  )  [static]

Definition at line 9096 of file io.c.

References ARGF, argf_close(), ARGF_GENERIC_INPUT_P, next_argv, NIL_P, rb_funcall3(), rb_intern, and rb_io_getc().

Referenced by Init_IO().

static VALUE argf_getline ( int  argc,
VALUE argv,
VALUE  argf 
) [static]
static VALUE argf_gets ( int  argc,
VALUE argv,
VALUE  argf 
) [static]

Definition at line 6963 of file io.c.

References argf_getline(), and rb_lastline_set().

Referenced by argf_readline(), Init_IO(), and rb_f_gets().

static void argf_init ( struct argf p,
VALUE  v 
) [inline, static]

Definition at line 6614 of file io.c.

References argf::argv, argf::current_file, argf::filename, and argf::lineno.

Referenced by argf_alloc(), and argf_initialize().

static VALUE argf_initialize ( VALUE  argf,
VALUE  argv 
) [static]

Definition at line 6636 of file io.c.

References ARGF, and argf_init().

Referenced by Init_IO().

static VALUE argf_initialize_copy ( VALUE  argf,
VALUE  orig 
) [static]

Definition at line 6646 of file io.c.

References ARGF, argf_of, argf::inplace, rb_obj_dup(), and ruby_strdup().

Referenced by Init_IO().

static VALUE argf_inplace_mode_get ( VALUE  argf  )  [static]

Definition at line 9530 of file io.c.

References ARGF, and rb_str_new2().

Referenced by Init_IO(), and opt_i_get().

static VALUE argf_inplace_mode_set ( VALUE  argf,
VALUE  val 
) [static]

Definition at line 9563 of file io.c.

References ARGF, free, OBJ_TAINTED, rb_insecure_operation(), rb_safe_level, RSTRING_PTR, RTEST, strdup, and StringValue.

Referenced by Init_IO(), and opt_i_set().

static VALUE argf_internal_encoding ( VALUE  argf  )  [static]
static VALUE argf_lineno ( VALUE  argf  )  [static]

Definition at line 6698 of file io.c.

References ARGF, and INT2FIX.

Referenced by Init_IO().

static VALUE argf_lineno_getter ( ID  id,
VALUE var 
) [static]

Definition at line 6889 of file io.c.

References ARGF, and INT2FIX.

Referenced by Init_IO().

static void argf_lineno_setter ( VALUE  val,
ID  id,
VALUE var 
) [static]

Definition at line 6896 of file io.c.

References ARGF, and NUM2INT.

Referenced by Init_IO().

static void argf_mark ( void *  ptr  )  [static]

Definition at line 6596 of file io.c.

References argf::argv, argf::current_file, argf::encs, argf::filename, and rb_gc_mark().

Referenced by argf_alloc().

static int argf_next_argv ( VALUE  argf  )  [static]
static VALUE argf_read ( int  argc,
VALUE argv,
VALUE  argf 
) [static]
static VALUE argf_readbyte ( VALUE  argf  )  [static]

Definition at line 9216 of file io.c.

References argf_getbyte(), NEXT_ARGF_FORWARD, NIL_P, and rb_eof_error().

Referenced by Init_IO().

static VALUE argf_readchar ( VALUE  argf  )  [static]

Definition at line 9176 of file io.c.

References ARGF, argf_close(), next_argv, NIL_P, rb_eof_error(), rb_funcall3(), rb_intern, rb_io_getc(), T_FILE, and TYPE.

Referenced by Init_IO().

static VALUE argf_readline ( int  argc,
VALUE argv,
VALUE  argf 
) [static]

Definition at line 7038 of file io.c.

References ARGF_FORWARD, argf_gets(), next_argv, NIL_P, and rb_eof_error().

Referenced by Init_IO(), and rb_f_readline().

static VALUE argf_readlines ( int  argc,
VALUE argv,
VALUE  argf 
) [static]

Definition at line 7090 of file io.c.

References argf_getline(), NIL_P, rb_ary_new(), and rb_ary_push().

Referenced by Init_IO(), and rb_f_readlines().

static VALUE argf_readpartial ( int  argc,
VALUE argv,
VALUE  argf 
) [static]
static VALUE argf_rewind ( VALUE  argf  )  [static]

Definition at line 8825 of file io.c.

References ARGF, ARGF_FORWARD, next_argv, rb_eArgError, rb_io_rewind(), and rb_raise().

Referenced by Init_IO().

static VALUE argf_seek_m ( int  argc,
VALUE argv,
VALUE  argf 
) [static]

Definition at line 8782 of file io.c.

References ARGF, ARGF_FORWARD, next_argv, rb_eArgError, rb_io_seek_m(), and rb_raise().

Referenced by Init_IO().

static VALUE argf_set_encoding ( int  argc,
VALUE argv,
VALUE  argf 
) [static]

Definition at line 8739 of file io.c.

References ARGF, rb_io_t::encs, GetOpenFile, next_argv, rb_eArgError, rb_io_set_encoding(), and rb_raise().

Referenced by Init_IO().

static VALUE argf_set_lineno ( VALUE  argf,
VALUE  val 
) [static]

Definition at line 6677 of file io.c.

References ARGF, and NUM2INT.

Referenced by Init_IO().

static VALUE argf_set_pos ( VALUE  argf,
VALUE  offset 
) [static]

Definition at line 8803 of file io.c.

References ARGF, ARGF_FORWARD, next_argv, rb_eArgError, rb_io_set_pos(), and rb_raise().

Referenced by Init_IO().

static VALUE argf_skip ( VALUE  argf  )  [static]

Definition at line 9455 of file io.c.

References ARGF, and argf_close().

Referenced by Init_IO().

static VALUE argf_tell ( VALUE  argf  )  [static]

Definition at line 8765 of file io.c.

References ARGF, ARGF_FORWARD, next_argv, rb_eArgError, rb_io_tell(), and rb_raise().

Referenced by Init_IO().

static VALUE argf_to_io ( VALUE  argf  )  [static]

Definition at line 8867 of file io.c.

References ARGF, ARGF_FORWARD, and next_argv.

Referenced by Init_IO().

static VALUE argf_to_s ( VALUE  argf  )  [static]

Definition at line 9516 of file io.c.

References rb_str_new2().

Referenced by Init_IO().

static VALUE check_pipe_command ( VALUE  filename_or_command  )  [static]

Definition at line 5471 of file io.c.

References OBJ_INFECT, rb_enc_ascget(), rb_enc_get(), rb_str_new(), RSTRING_LEN, and RSTRING_PTR.

Referenced by rb_f_open(), and rb_io_open().

static void clear_codeconv ( rb_io_t fptr  )  [static]
static void clear_readconv ( rb_io_t fptr  )  [static]
static void clear_writeconv ( rb_io_t fptr  )  [static]

Definition at line 3499 of file io.c.

References rb_econv_close(), rb_io_t::writeconv, and rb_io_t::writeconv_initialized.

Referenced by clear_codeconv().

static VALUE copy_stream_body ( VALUE  arg  )  [static]
static VALUE copy_stream_fallback ( struct copy_stream_struct stp  )  [static]
static VALUE copy_stream_fallback_body ( VALUE  arg  )  [static]
static VALUE copy_stream_finalize ( VALUE  arg  )  [static]
static VALUE do_writeconv ( VALUE  str,
rb_io_t fptr 
) [static]
static void extract_binmode ( VALUE  opthash,
int *  fmode 
) [static]
static VALUE fill_cbuf ( rb_io_t fptr,
int  ec_flags 
) [static]
static VALUE finish_writeconv ( rb_io_t fptr,
int  noalloc 
) [static]
static VALUE finish_writeconv_sync ( VALUE  arg  )  [static]

Definition at line 3415 of file io.c.

References finish_writeconv(), finish_writeconv_arg::fptr, and finish_writeconv_arg::noalloc.

Referenced by fptr_finalize().

static rb_io_t* flush_before_seek ( rb_io_t fptr  )  [static]

Definition at line 392 of file io.c.

References errno, io_fflush(), io_unread(), and rb_sys_fail().

static void fptr_finalize ( rb_io_t fptr,
int  noraise 
) [static]
void Init_File ( void   ) 

Definition at line 5224 of file file.c.

References define_filetest_function(), INT2FIX, LOCK_EX, LOCK_NB, LOCK_SH, LOCK_UN, PATH_SEP, Qnil, rb_cIO, rb_cObject, rb_define_alloc_func(), rb_define_class(), rb_define_class_under(), rb_define_const(), rb_define_global_function(), rb_define_method(), rb_define_module(), rb_define_module_under(), rb_define_singleton_method(), rb_f_test(), rb_file_atime(), rb_file_blockdev_p(), rb_file_chardev_p(), rb_file_chmod(), rb_file_chown(), rb_file_const(), rb_file_ctime(), rb_file_directory_p(), rb_file_executable_p(), rb_file_executable_real_p(), rb_file_exist_p(), rb_file_file_p(), rb_file_flock(), rb_file_grpowned_p(), rb_file_identical_p(), rb_file_lstat(), rb_file_mtime(), rb_file_owned_p(), rb_file_path(), rb_file_pipe_p(), rb_file_readable_p(), rb_file_readable_real_p(), rb_file_s_absolute_path(), rb_file_s_atime(), rb_file_s_basename(), rb_file_s_chmod(), rb_file_s_chown(), rb_file_s_ctime(), rb_file_s_dirname(), rb_file_s_expand_path(), rb_file_s_extname(), rb_file_s_ftype(), rb_file_s_join(), rb_file_s_lchmod, rb_file_s_lchown, rb_file_s_link, rb_file_s_lstat(), rb_file_s_mtime(), rb_file_s_path(), rb_file_s_readlink, rb_file_s_realdirpath(), rb_file_s_realpath(), rb_file_s_rename(), rb_file_s_size(), rb_file_s_split(), rb_file_s_stat(), rb_file_s_symlink, rb_file_s_truncate, rb_file_s_umask(), rb_file_s_unlink(), rb_file_s_utime(), rb_file_sgid_p(), rb_file_size(), rb_file_size_p(), rb_file_socket_p(), rb_file_sticky_p(), rb_file_suid_p(), rb_file_symlink_p(), rb_file_truncate, rb_file_world_readable_p(), rb_file_world_writable_p(), rb_file_writable_p(), rb_file_writable_real_p(), rb_file_zero_p(), rb_include_module(), rb_io_stat(), rb_mComparable, rb_obj_freeze(), rb_stat_atime(), rb_stat_b(), rb_stat_blksize(), rb_stat_blocks(), rb_stat_c(), rb_stat_cmp(), rb_stat_ctime(), rb_stat_d(), rb_stat_dev(), rb_stat_dev_major(), rb_stat_dev_minor(), rb_stat_f(), rb_stat_ftype(), rb_stat_gid(), rb_stat_grpowned(), rb_stat_init(), rb_stat_init_copy(), rb_stat_ino(), rb_stat_inspect(), rb_stat_l(), rb_stat_mode(), rb_stat_mtime(), rb_stat_nlink(), rb_stat_owned(), rb_stat_p(), rb_stat_R(), rb_stat_r(), rb_stat_rdev(), rb_stat_rdev_major(), rb_stat_rdev_minor(), rb_stat_S(), rb_stat_s(), rb_stat_s_alloc(), rb_stat_sgid(), rb_stat_size(), rb_stat_sticky(), rb_stat_suid(), rb_stat_uid(), rb_stat_W(), rb_stat_w(), rb_stat_wr(), rb_stat_ww(), rb_stat_X(), rb_stat_x(), rb_stat_z(), rb_str_new2(), and rb_usascii_str_new2().

Referenced by Init_IO().

void Init_IO ( void   ) 

Definition at line 9792 of file io.c.

References ARGF, argf_alloc(), argf_argv(), argf_argv_getter(), argf_binmode_m(), argf_binmode_p(), argf_close_m(), argf_closed(), argf_each_byte(), argf_each_char(), argf_each_line(), argf_eof(), argf_external_encoding(), argf_file(), argf_filename(), argf_filename_getter(), argf_fileno(), argf_getbyte(), argf_getc(), argf_gets(), argf_initialize(), argf_initialize_copy(), argf_inplace_mode_get(), argf_inplace_mode_set(), argf_internal_encoding(), argf_lineno(), argf_lineno_getter(), argf_lineno_setter(), argf_read(), argf_readbyte(), argf_readchar(), argf_readline(), argf_readlines(), argf_readpartial(), argf_rewind(), argf_seek_m(), argf_set_encoding(), argf_set_lineno(), argf_set_pos(), argf_skip(), argf_tell(), argf_to_io(), argf_to_s(), FMODE_READABLE, FMODE_SYNC, FMODE_WRITABLE, ID2SYM, id_flush, id_getc, id_read, id_readpartial, id_write, Init_File(), INT2FIX, io_alloc(), io_read(), io_read_nonblock(), io_readpartial(), io_write_m(), O_BINARY, O_NONBLOCK, OBJ_FREEZE, opt_i_get(), opt_i_set(), orig_stderr, orig_stdout, pipe_atexit(), prep_stdio(), rb_cFile, rb_cIO, rb_class_new(), rb_class_new_instance(), rb_cObject, rb_default_rs, rb_deferr, rb_define_alias(), rb_define_alloc_func(), rb_define_class(), rb_define_const(), rb_define_global_const(), rb_define_global_function(), rb_define_hooked_variable(), rb_define_method(), rb_define_module_under(), rb_define_readonly_variable(), rb_define_singleton_method(), rb_define_variable(), rb_define_virtual_variable(), rb_eEOFError, rb_eIOError, rb_eStandardError, rb_f_backquote(), rb_f_gets(), rb_f_open(), rb_f_p(), rb_f_print(), rb_f_printf(), rb_f_putc(), rb_f_puts(), rb_f_readline(), rb_f_readlines(), rb_f_select(), rb_f_syscall, rb_file_const(), rb_file_initialize(), rb_gc_register_mark_object(), rb_gvar_readonly_setter(), rb_include_module(), rb_intern, rb_io_addstr(), rb_io_autoclose_p(), rb_io_binmode_m(), rb_io_binmode_p(), rb_io_close_m(), rb_io_close_on_exec_p, rb_io_close_read(), rb_io_close_write(), rb_io_closed(), rb_io_each_byte(), rb_io_each_char(), rb_io_each_codepoint(), rb_io_each_line(), rb_io_eof(), rb_io_external_encoding(), rb_io_fcntl, rb_io_fdatasync, rb_io_fileno(), rb_io_flush(), rb_io_fsync, rb_io_getbyte(), rb_io_getc(), rb_io_gets_m(), rb_io_init_copy(), rb_io_initialize(), rb_io_inspect(), rb_io_internal_encoding(), rb_io_ioctl(), rb_io_isatty(), rb_io_lineno(), rb_io_pid(), rb_io_print(), rb_io_printf(), rb_io_putc(), rb_io_puts(), rb_io_readbyte(), rb_io_readchar(), rb_io_readline(), rb_io_readlines(), rb_io_reopen(), rb_io_rewind(), rb_io_s_binread(), rb_io_s_copy_stream(), rb_io_s_for_fd(), rb_io_s_foreach(), rb_io_s_new(), rb_io_s_open(), rb_io_s_pipe(), rb_io_s_popen(), rb_io_s_read(), rb_io_s_readlines(), rb_io_s_sysopen(), rb_io_s_try_convert(), rb_io_seek_m(), rb_io_set_autoclose(), rb_io_set_close_on_exec, rb_io_set_encoding(), rb_io_set_lineno(), rb_io_set_pos(), rb_io_set_sync(), rb_io_sync(), rb_io_sysread(), rb_io_sysseek(), rb_io_syswrite(), rb_io_tell(), rb_io_to_io(), rb_io_ungetbyte(), rb_io_ungetc(), rb_io_write_nonblock(), rb_lastline_get(), rb_lastline_set(), rb_mEnumerable, rb_mKernel, rb_mWaitReadable, rb_mWaitWritable, rb_obj_display(), rb_output_fs, rb_output_rs, rb_rs, rb_set_class_path(), rb_stderr, rb_stdin, rb_stdout, rb_str_new2(), rb_str_setter(), rb_usascii_str_new2(), SEEK_CUR, SEEK_END, SEEK_SET, stdout_setter(), sym_autoclose, sym_binmode, sym_encoding, sym_extenc, sym_intenc, sym_mode, sym_open_args, sym_perm, and sym_textmode.

static VALUE internal_read_func ( void *  ptr  )  [static]

Definition at line 566 of file io.c.

References io_internal_struct::buf, io_internal_struct::capa, and io_internal_struct::fd.

Referenced by rb_read_internal().

static VALUE internal_write_func ( void *  ptr  )  [static]

Definition at line 573 of file io.c.

References io_internal_struct::buf, io_internal_struct::capa, and io_internal_struct::fd.

Referenced by rb_write_internal().

static VALUE io_alloc ( VALUE  klass  )  [static]

Definition at line 522 of file io.c.

References NEWOBJ, OBJSETUP, and T_FILE.

Referenced by Init_IO(), pipe_open(), prep_io(), rb_file_open(), rb_file_open_str(), rb_io_open(), and rb_io_open_with_args().

static long io_binwrite ( VALUE  str,
rb_io_t fptr,
int  nosync 
) [static]
static VALUE io_binwrite_string ( VALUE  arg  )  [static]
static VALUE io_call_close ( VALUE  io  )  [static]

Definition at line 3608 of file io.c.

References rb_funcall(), and rb_intern.

Referenced by io_close().

static void io_check_tty ( rb_io_t fptr  )  [static]

Definition at line 4582 of file io.c.

References rb_io_t::fd, FMODE_TTY, and rb_io_t::mode.

Referenced by prep_io(), rb_file_open_generic(), and rb_io_initialize().

static VALUE io_close ( VALUE  io  )  [static]

Definition at line 3614 of file io.c.

References io_call_close(), and rb_rescue().

Referenced by pipe_pair_close(), rb_f_open(), rb_io_s_open(), and rb_io_s_popen().

static int io_cntl ( int  fd,
unsigned long  cmd,
long  narg,
int  io_p 
) [static]

Definition at line 7333 of file io.c.

References fcntl(), ioctl(), rb_notimplement(), and UPDATE_MAXFD.

Referenced by rb_io_ctl().

static VALUE io_enc_str ( VALUE  str,
rb_io_t fptr 
) [static]

Definition at line 1596 of file io.c.

References io_read_encoding(), OBJ_TAINT, and rb_enc_associate().

Referenced by io_getc(), rb_io_getline_1(), rb_io_getline_fast(), and read_all().

static int io_encname_bom_p ( const char *  name,
long  len 
) [static]

Definition at line 4024 of file io.c.

References strchr(), and STRNCASECMP.

Referenced by parse_mode_enc(), and rb_io_modestr_fmode().

static void io_encoding_set ( rb_io_t fptr,
VALUE  v1,
VALUE  v2,
VALUE  opt 
) [static]
static int io_fflush ( rb_io_t fptr  )  [static]
static int io_fillbuf ( rb_io_t fptr  )  [static]
static int io_flush_buffer ( rb_io_t fptr  )  [inline, static]

Definition at line 639 of file io.c.

References io_flush_buffer_async(), rb_mutex_synchronize(), and rb_io_t::write_lock.

Referenced by io_fflush().

static VALUE io_flush_buffer_async ( VALUE  arg  )  [static]

Definition at line 633 of file io.c.

References io_flush_buffer_sync(), rb_thread_blocking_region(), and RUBY_UBF_IO.

Referenced by io_flush_buffer().

static VALUE io_flush_buffer_sync ( void *  arg  )  [static]
static long io_fread ( VALUE  str,
long  offset,
rb_io_t fptr 
) [static]
static long io_fwrite ( VALUE  str,
rb_io_t fptr,
int  nosync 
) [static]

Definition at line 941 of file io.c.

References do_writeconv(), and io_binwrite().

Referenced by io_write().

static VALUE io_getc ( rb_io_t fptr,
rb_encoding enc 
) [static]
static VALUE io_getpartial ( int  argc,
VALUE argv,
VALUE  io,
int  nonblock 
) [static]
static rb_encoding * io_input_encoding ( rb_io_t fptr  )  [static]
static VALUE io_new_instance ( VALUE  args  )  [static]

Definition at line 7595 of file io.c.

References rb_class_new_instance().

Referenced by rb_io_s_pipe().

static VALUE io_puts_ary ( VALUE  ary,
VALUE  out,
int  recur 
) [static]

Definition at line 6059 of file io.c.

References RARRAY_LEN, RARRAY_PTR, rb_io_puts(), and rb_str_new2().

Referenced by rb_io_puts().

static VALUE io_read ( int  argc,
VALUE argv,
VALUE  io 
) [static]
static rb_encoding* io_read_encoding ( rb_io_t fptr  )  [static]
static VALUE io_read_nonblock ( int  argc,
VALUE argv,
VALUE  io 
) [static]

Definition at line 1996 of file io.c.

References io_getpartial(), NIL_P, and rb_eof_error().

Referenced by Init_IO().

static VALUE io_readpartial ( int  argc,
VALUE argv,
VALUE  io 
) [static]

Definition at line 1935 of file io.c.

References io_getpartial(), NIL_P, and rb_eof_error().

Referenced by Init_IO().

static VALUE io_reopen ( VALUE  io,
VALUE  nfile 
) [static]
static VALUE io_s_foreach ( struct foreach_arg arg  )  [static]

Definition at line 7820 of file io.c.

References foreach_arg::argc, foreach_arg::argv, foreach_arg::io, NIL_P, rb_io_gets_m(), and rb_yield().

Referenced by rb_io_s_foreach().

static VALUE io_s_read ( struct foreach_arg arg  )  [static]

Definition at line 7904 of file io.c.

References foreach_arg::argc, foreach_arg::argv, foreach_arg::io, and io_read().

Referenced by rb_io_s_binread(), and rb_io_s_read().

static VALUE io_s_readlines ( struct foreach_arg arg  )  [static]

Definition at line 7869 of file io.c.

References foreach_arg::argc, foreach_arg::argv, foreach_arg::io, and rb_io_readlines().

Referenced by rb_io_s_readlines().

static void io_set_encoding_by_bom ( VALUE  io  )  [static]
static VALUE io_shift_cbuf ( rb_io_t fptr,
int  len,
VALUE strp 
) [static]
static int io_strip_bom ( VALUE  io  )  [static]
static void io_ungetbyte ( VALUE  str,
rb_io_t fptr 
) [static]
static void io_unread ( rb_io_t fptr  )  [static]
static long io_writable_length ( rb_io_t fptr,
long  l 
) [static]

Definition at line 602 of file io.c.

References PIPE_BUF, rb_thread_alone(), and wsplit_p().

Referenced by io_binwrite(), io_binwrite_string(), and io_flush_buffer_sync().

static VALUE io_write ( VALUE  io,
VALUE  str,
int  nosync 
) [static]
static VALUE io_write_m ( VALUE  io,
VALUE  str 
) [static]

Definition at line 993 of file io.c.

References io_write().

Referenced by Init_IO().

static void make_readconv ( rb_io_t fptr,
int  size 
) [static]
static void make_writeconv ( rb_io_t fptr  )  [static]
static ssize_t maygvl_copy_stream_read ( struct copy_stream_struct stp,
char *  buf,
size_t  len,
off_t  offset 
) [static]
static int maygvl_copy_stream_wait_read ( struct copy_stream_struct stp  )  [static]
static void mode_enc ( rb_io_t fptr,
const char *  estr 
) [static]
static VALUE more_char ( rb_io_t fptr  )  [static]
static void must_respond_to ( ID  mid,
VALUE  val,
ID  id 
) [static]

Definition at line 6259 of file io.c.

References rb_eTypeError, rb_id2name(), rb_obj_classname(), rb_raise(), and rb_respond_to().

Referenced by stdout_setter().

static VALUE nogvl_copy_stream_func ( void *  arg  )  [static]

Definition at line 8299 of file io.c.

References nogvl_copy_stream_read_write().

Referenced by copy_stream_body().

static void nogvl_copy_stream_read_write ( struct copy_stream_struct stp  )  [static]
static int nogvl_copy_stream_wait_write ( struct copy_stream_struct stp  )  [static]
static int nogvl_copy_stream_write ( struct copy_stream_struct stp,
char *  buf,
size_t  len 
) [static]
static void open_key_args ( int  argc,
VALUE argv,
struct foreach_arg arg 
) [static]
static VALUE opt_i_get ( ID  id,
VALUE var 
) [static]

Definition at line 9537 of file io.c.

References argf_inplace_mode_get().

Referenced by Init_IO().

static void opt_i_set ( VALUE  val,
ID  id,
VALUE var 
) [static]

Definition at line 9582 of file io.c.

References argf_inplace_mode_set().

Referenced by Init_IO().

static void parse_mode_enc ( const char *  estr,
rb_encoding **  enc_p,
rb_encoding **  enc2_p,
int *  fmode_p 
) [static]
static void pipe_add_fptr ( rb_io_t fptr  )  [static]

Definition at line 4741 of file io.c.

References ALLOC, pipe_list::fptr, list, and pipe_list::next.

Referenced by io_reopen(), pipe_open(), and rb_io_init_copy().

static void pipe_atexit ( void   )  [static]

Definition at line 4775 of file io.c.

References pipe_list::fptr, list, pipe_list::next, and rb_io_fptr_finalize().

Referenced by Init_IO().

static void pipe_del_fptr ( rb_io_t fptr  )  [static]

Definition at line 4752 of file io.c.

References pipe_list::fptr, free, list, and pipe_list::next.

Referenced by pipe_finalize().

static void pipe_finalize ( rb_io_t fptr,
int  noraise 
) [static]
static VALUE pipe_open ( struct rb_exec_arg eargp,
VALUE  prog,
const char *  modestr,
int  fmode,
convconfig_t convconfig 
) [static]
static VALUE pipe_open_s ( VALUE  prog,
const char *  modestr,
int  fmode,
convconfig_t convconfig 
) [static]
static VALUE pipe_open_v ( int  argc,
VALUE argv,
const char *  modestr,
int  fmode,
convconfig_t convconfig 
) [static]

Definition at line 5177 of file io.c.

References FALSE, pipe_open(), rb_exec_arg::prog, and rb_exec_arg_init().

Referenced by rb_io_s_popen().

static VALUE pipe_pair_close ( VALUE  rw  )  [static]

Definition at line 7657 of file io.c.

References io_close(), and rb_ensure().

Referenced by rb_io_s_pipe().

static VALUE pop_last_hash ( int *  argc_p,
VALUE argv 
) [static]
static VALUE prep_io ( int  fd,
int  fmode,
VALUE  klass,
const char *  path 
) [static]
static VALUE prep_stdio ( FILE f,
int  fmode,
VALUE  klass,
const char *  path 
) [static]

Definition at line 6306 of file io.c.

References fileno, FMODE_PREP, GetOpenFile, prep_io(), and rb_io_t::stdio_file.

Referenced by Init_IO().

static void prepare_getline_args ( int  argc,
VALUE argv,
VALUE rsp,
long *  limit,
VALUE  io 
) [static]
size_t rb_econv_memsize ( rb_econv_t  ) 
void rb_eof_error ( void   ) 
static VALUE rb_f_backquote ( VALUE  obj,
VALUE  str 
) [static]
static VALUE rb_f_gets ( int  argc,
VALUE argv,
VALUE  recv 
) [static]

Definition at line 6939 of file io.c.

References argf_gets(), rb_funcall2(), and rb_intern.

Referenced by Init_IO(), and rb_gets().

static VALUE rb_f_open ( int  argc,
VALUE argv 
) [static]
static VALUE rb_f_p ( int  argc,
VALUE argv,
VALUE  self 
) [static]

Definition at line 6182 of file io.c.

References rb_ary_new4(), rb_io_flush(), rb_p(), rb_stdout, T_FILE, and TYPE.

Referenced by Init_IO().

static VALUE rb_f_print ( int  argc,
VALUE argv 
) [static]

Definition at line 6004 of file io.c.

References rb_io_print(), and rb_stdout.

Referenced by Init_IO().

static VALUE rb_f_printf ( int  argc,
VALUE argv 
) [static]

Definition at line 5915 of file io.c.

References rb_f_sprintf(), rb_io_write(), rb_stdout, T_STRING, and TYPE.

Referenced by Init_IO().

static VALUE rb_f_putc ( VALUE  recv,
VALUE  ch 
) [static]

Definition at line 6050 of file io.c.

References rb_funcall2(), rb_intern, rb_io_putc(), and rb_stdout.

Referenced by Init_IO().

static VALUE rb_f_puts ( int  argc,
VALUE argv,
VALUE  recv 
) [static]

Definition at line 6139 of file io.c.

References rb_funcall2(), rb_intern, rb_io_puts(), and rb_stdout.

Referenced by Init_IO().

static VALUE rb_f_readline ( int  argc,
VALUE argv,
VALUE  recv 
) [static]

Definition at line 7012 of file io.c.

References argf_readline(), rb_funcall2(), and rb_intern.

Referenced by Init_IO().

static VALUE rb_f_readlines ( int  argc,
VALUE argv,
VALUE  recv 
) [static]

Definition at line 7065 of file io.c.

References argf_readlines(), rb_funcall2(), and rb_intern.

Referenced by Init_IO().

static VALUE rb_f_select ( int  argc,
VALUE argv,
VALUE  obj 
) [static]
FILE* rb_fdopen ( int  fd,
const char *  modestr 
)

Definition at line 4543 of file io.c.

References errno, NULL, rb_gc(), rb_sys_fail(), and rb_warn().

Referenced by rb_io_stdio_file().

static VALUE rb_file_initialize ( int  argc,
VALUE argv,
VALUE  io 
) [static]

Definition at line 6500 of file io.c.

References NIL_P, rb_check_convert_type(), rb_eRuntimeError, rb_io_initialize(), rb_open_file(), rb_raise(), RFILE, and T_FIXNUM.

Referenced by Init_IO().

VALUE rb_file_open ( const char *  fname,
const char *  modestr 
)

Definition at line 4729 of file io.c.

References io_alloc(), rb_cFile, rb_file_open_internal(), and rb_str_new_cstr().

static VALUE rb_file_open_generic ( VALUE  io,
VALUE  filename,
int  oflags,
int  fmode,
convconfig_t convconfig,
mode_t  perm 
) [static]
static VALUE rb_file_open_internal ( VALUE  io,
VALUE  filename,
const char *  modestr 
) [static]
VALUE rb_file_open_str ( VALUE  fname,
const char *  modestr 
)

Definition at line 4722 of file io.c.

References FilePathValue, io_alloc(), rb_cFile, and rb_file_open_internal().

Referenced by iseq_s_compile_file().

VALUE rb_get_argv ( void   ) 

Definition at line 9628 of file io.c.

References ARGF.

VALUE rb_gets ( void   ) 
VALUE rb_io_addstr ( VALUE  io,
VALUE  str 
)

Definition at line 1021 of file io.c.

References rb_io_write().

Referenced by Init_IO().

VALUE rb_io_ascii8bit_binmode ( VALUE  io  ) 
static VALUE rb_io_autoclose_p ( VALUE  io  )  [static]

Definition at line 6557 of file io.c.

References FMODE_PREP, GetOpenFile, rb_io_t::mode, Qfalse, and rb_secure().

Referenced by Init_IO().

VALUE rb_io_binmode ( VALUE  io  ) 
static VALUE rb_io_binmode_m ( VALUE  io  )  [static]

Definition at line 3971 of file io.c.

References GetWriteIO, and rb_io_ascii8bit_binmode().

Referenced by Init_IO().

static VALUE rb_io_binmode_p ( VALUE  io  )  [static]

Definition at line 3990 of file io.c.

References FMODE_BINMODE, GetOpenFile, rb_io_t::mode, and Qtrue.

Referenced by Init_IO().

void rb_io_check_byte_readable ( rb_io_t fptr  ) 
void rb_io_check_char_readable ( rb_io_t fptr  ) 
void rb_io_check_closed ( rb_io_t fptr  ) 
void rb_io_check_initialized ( rb_io_t fptr  ) 

Definition at line 271 of file io.c.

References rb_eIOError, and rb_raise().

Referenced by rb_file_path(), rb_io_check_closed(), rb_io_closed(), rb_io_get_write_io(), and rb_io_synchronized().

static VALUE rb_io_check_io ( VALUE  io  )  [static]
void rb_io_check_readable ( rb_io_t fptr  ) 

Definition at line 441 of file io.c.

References rb_io_check_byte_readable().

Referenced by io_nread(), io_ready_p(), io_wait(), ossl_obj2bio(), and ossl_ssl_setup().

void rb_io_check_writable ( rb_io_t fptr  ) 
VALUE rb_io_close ( VALUE  io  ) 
static VALUE rb_io_close_m ( VALUE  io  )  [static]
static VALUE rb_io_close_read ( VALUE  io  )  [static]
static VALUE rb_io_close_write ( VALUE  io  )  [static]
static VALUE rb_io_closed ( VALUE  io  )  [static]

Definition at line 3639 of file io.c.

References rb_io_t::fd, GetWriteIO, Qfalse, rb_io_check_initialized(), and RFILE.

Referenced by argf_closed(), and Init_IO().

static VALUE rb_io_ctl ( VALUE  io,
VALUE  req,
VALUE  arg,
int  io_p 
) [static]
static VALUE rb_io_each_byte ( VALUE  io  )  [static]
static VALUE rb_io_each_char ( VALUE  io  )  [static]
static VALUE rb_io_each_codepoint ( VALUE  io  )  [static]
static VALUE rb_io_each_line ( int  argc,
VALUE argv,
VALUE  io 
) [static]

Definition at line 2733 of file io.c.

References NIL_P, prepare_getline_args(), rb_io_getline_1(), rb_yield(), and RETURN_ENUMERATOR.

Referenced by Init_IO().

VALUE rb_io_eof ( VALUE  io  ) 
static void rb_io_ext_int_to_encs ( rb_encoding ext,
rb_encoding intern,
rb_encoding **  enc,
rb_encoding **  enc2 
) [static]
static VALUE rb_io_external_encoding ( VALUE  io  )  [static]
int rb_io_extract_encoding_option ( VALUE  opt,
rb_encoding **  enc_p,
rb_encoding **  enc2_p,
int *  fmode_p 
)
static void rb_io_extract_modeenc ( VALUE vmode_p,
VALUE vperm_p,
VALUE  opthash,
int *  oflags_p,
int *  fmode_p,
convconfig_t convconfig_p 
) [static]
VALUE rb_io_fdopen ( int  fd,
int  oflags,
const char *  path 
)

Definition at line 6297 of file io.c.

References prep_io(), rb_cFile, rb_cIO, and rb_io_oflags_fmode().

Referenced by load_file_internal().

static VALUE rb_io_fileno ( VALUE  io  )  [static]

Definition at line 1413 of file io.c.

References rb_io_t::fd, GetOpenFile, and INT2FIX.

Referenced by argf_fileno(), and Init_IO().

VALUE rb_io_flush ( VALUE  io  ) 
static const char* rb_io_fmode_modestr ( int  fmode  )  [static]
static int rb_io_fmode_oflags ( int  fmode  )  [static]
static void rb_io_fptr_cleanup ( rb_io_t fptr,
int  noraise 
) [static]

Definition at line 3475 of file io.c.

References rb_io_t::finalize, and fptr_finalize().

Referenced by rb_io_close(), rb_io_close_read(), and rb_io_fptr_finalize().

int rb_io_fptr_finalize ( rb_io_t fptr  ) 
VALUE rb_io_get_io ( VALUE  io  ) 

Definition at line 290 of file io.c.

References rb_convert_type(), and T_FILE.

Referenced by io_reopen(), rb_io_init_copy(), and select_internal().

VALUE rb_io_get_write_io ( VALUE  io  ) 

Definition at line 302 of file io.c.

References rb_io_check_initialized(), and RFILE.

VALUE rb_io_getbyte ( VALUE  io  ) 
static VALUE rb_io_getc ( VALUE  io  )  [static]
static VALUE rb_io_getline ( int  argc,
VALUE argv,
VALUE  io 
) [static]

Definition at line 2541 of file io.c.

References prepare_getline_args(), and rb_io_getline_1().

Referenced by argf_getline(), and rb_io_gets_m().

static VALUE rb_io_getline_1 ( VALUE  rs,
long  limit,
VALUE  io 
) [static]
static VALUE rb_io_getline_fast ( rb_io_t fptr,
rb_encoding enc,
VALUE  io 
) [static]
VALUE rb_io_gets ( VALUE  io  ) 

Definition at line 2551 of file io.c.

References rb_default_rs, and rb_io_getline_1().

Referenced by argf_getline(), lex_io_gets(), load_file_internal(), and rb_gets().

static VALUE rb_io_gets_m ( int  argc,
VALUE argv,
VALUE  io 
) [static]

Definition at line 2578 of file io.c.

References rb_io_getline(), and rb_lastline_set().

Referenced by Init_IO(), io_s_foreach(), and rb_io_readline().

static VALUE rb_io_init_copy ( VALUE  dest,
VALUE  io 
) [static]
static VALUE rb_io_initialize ( int  argc,
VALUE argv,
VALUE  io 
) [static]
static VALUE rb_io_inspect ( VALUE  obj  )  [static]
static VALUE rb_io_internal_encoding ( VALUE  io  )  [static]
static VALUE rb_io_ioctl ( int  argc,
VALUE argv,
VALUE  io 
) [static]

Definition at line 7441 of file io.c.

References rb_io_ctl(), and rb_scan_args().

Referenced by Init_IO().

static VALUE rb_io_isatty ( VALUE  io  )  [static]

Definition at line 3243 of file io.c.

References rb_io_t::fd, and GetOpenFile.

Referenced by Init_IO().

static VALUE rb_io_lineno ( VALUE  io  )  [static]

Definition at line 2608 of file io.c.

References GetOpenFile, INT2NUM(), rb_io_t::lineno, and rb_io_check_char_readable().

Referenced by Init_IO().

size_t rb_io_memsize ( rb_io_t fptr  ) 
static void rb_io_mode_enc ( rb_io_t fptr,
const char *  modestr 
) [static]

Definition at line 4296 of file io.c.

References mode_enc(), and strchr().

Referenced by rb_io_reopen().

int rb_io_modestr_fmode ( const char *  modestr  ) 
int rb_io_modestr_oflags ( const char *  modestr  ) 

Definition at line 4155 of file io.c.

References rb_io_fmode_oflags(), and rb_io_modestr_fmode().

Referenced by check_exec_redirect(), and rb_io_s_sysopen().

int rb_io_oflags_fmode ( int  oflags  ) 

Definition at line 4085 of file io.c.

References O_BINARY.

Referenced by rb_io_extract_modeenc(), rb_io_fdopen(), and rb_io_initialize().

static const char* rb_io_oflags_modestr ( int  oflags  )  [static]

Definition at line 4161 of file io.c.

References MODE_BINARY, rb_eArgError, and rb_raise().

Referenced by rb_io_open(), rb_io_reopen(), rb_io_s_popen(), and rb_io_stdio_file().

static VALUE rb_io_open ( VALUE  filename,
VALUE  vmode,
VALUE  vperm,
VALUE  opt 
) [static]
static VALUE rb_io_open_with_args ( int  argc,
VALUE argv 
) [static]

Definition at line 5654 of file io.c.

References io_alloc(), rb_cFile, and rb_open_file().

Referenced by open_key_args().

static VALUE rb_io_pid ( VALUE  io  )  [static]

Definition at line 1445 of file io.c.

References GetOpenFile, rb_io_t::pid, and PIDT2NUM.

Referenced by Init_IO().

VALUE rb_io_print ( int  argc,
VALUE argv,
VALUE  out 
)

Definition at line 5956 of file io.c.

References NIL_P, rb_io_write(), rb_lastline_get(), rb_output_fs, and rb_output_rs.

Referenced by Init_IO(), and rb_f_print().

VALUE rb_io_printf ( int  argc,
VALUE argv,
VALUE  out 
)

Definition at line 5897 of file io.c.

References rb_f_sprintf(), and rb_io_write().

Referenced by Init_IO().

static VALUE rb_io_putc ( VALUE  io,
VALUE  ch 
) [static]

Definition at line 6029 of file io.c.

References NUM2CHR(), rb_io_write(), and rb_str_new().

Referenced by Init_IO(), and rb_f_putc().

VALUE rb_io_puts ( int  argc,
VALUE argv,
VALUE  out 
)
void rb_io_read_check ( rb_io_t fptr  ) 

Definition at line 494 of file io.c.

References rb_io_t::fd, rb_thread_wait_fd(), and READ_DATA_PENDING.

int rb_io_read_pending ( rb_io_t fptr  ) 

Definition at line 477 of file io.c.

References READ_CHAR_PENDING, and READ_DATA_PENDING.

Referenced by io_nread(), io_ready_p(), io_wait(), rsock_s_recvfrom(), and rsock_s_recvfrom_nonblock().

static VALUE rb_io_readbyte ( VALUE  io  )  [static]

Definition at line 3124 of file io.c.

References NIL_P, rb_eof_error(), and rb_io_getbyte().

Referenced by Init_IO().

static VALUE rb_io_readchar ( VALUE  io  )  [static]

Definition at line 3068 of file io.c.

References NIL_P, rb_eof_error(), and rb_io_getc().

Referenced by Init_IO().

static VALUE rb_io_readline ( int  argc,
VALUE argv,
VALUE  io 
) [static]

Definition at line 2656 of file io.c.

References NIL_P, rb_eof_error(), and rb_io_gets_m().

Referenced by Init_IO().

static VALUE rb_io_readlines ( int  argc,
VALUE argv,
VALUE  io 
) [static]

Definition at line 2685 of file io.c.

References NIL_P, prepare_getline_args(), rb_ary_new(), rb_ary_push(), and rb_io_getline_1().

Referenced by Init_IO(), and io_s_readlines().

static VALUE rb_io_reopen ( int  argc,
VALUE argv,
VALUE  file 
) [static]
static VALUE rb_io_rewind ( VALUE  io  )  [static]
static VALUE rb_io_s_binread ( int  argc,
VALUE argv,
VALUE  io 
) [static]
static VALUE rb_io_s_copy_stream ( int  argc,
VALUE argv,
VALUE  io 
) [static]
static VALUE rb_io_s_for_fd ( int  argc,
VALUE argv,
VALUE  klass 
) [static]

Definition at line 6541 of file io.c.

References rb_io_initialize(), and rb_obj_alloc().

Referenced by Init_IO().

static VALUE rb_io_s_foreach ( int  argc,
VALUE argv,
VALUE  self 
) [static]
static VALUE rb_io_s_new ( int  argc,
VALUE argv,
VALUE  klass 
) [static]

Definition at line 6520 of file io.c.

References rb_block_given_p(), rb_class2name(), rb_class_new_instance(), and rb_warn().

Referenced by Init_IO().

static VALUE rb_io_s_open ( int  argc,
VALUE argv,
VALUE  klass 
) [static]

Definition at line 5421 of file io.c.

References io_close(), rb_block_given_p(), rb_class_new_instance(), rb_ensure(), and rb_yield().

Referenced by Init_IO(), and rb_f_open().

static VALUE rb_io_s_pipe ( int  argc,
VALUE argv,
VALUE  klass 
) [static]
static VALUE rb_io_s_popen ( int  argc,
VALUE argv,
VALUE  klass 
) [static]
static VALUE rb_io_s_read ( int  argc,
VALUE argv,
VALUE  io 
) [static]
static VALUE rb_io_s_readlines ( int  argc,
VALUE argv,
VALUE  io 
) [static]

Definition at line 7893 of file io.c.

References foreach_arg::io, io_s_readlines(), NIL_P, NULL, open_key_args(), rb_ensure(), rb_io_close(), and rb_scan_args().

Referenced by Init_IO().

static VALUE rb_io_s_sysopen ( int  argc,
VALUE argv 
) [static]
static VALUE rb_io_s_try_convert ( VALUE  dummy,
VALUE  io 
) [static]

Definition at line 331 of file io.c.

References rb_io_check_io().

Referenced by Init_IO().

static VALUE rb_io_seek ( VALUE  io,
VALUE  offset,
int  whence 
) [static]
static VALUE rb_io_seek_m ( int  argc,
VALUE argv,
VALUE  io 
) [static]

Definition at line 1131 of file io.c.

References NUM2INT, binwrite_arg::offset, rb_io_seek(), and rb_scan_args().

Referenced by argf_seek_m(), and Init_IO().

static VALUE rb_io_set_autoclose ( VALUE  io,
VALUE  autoclose 
) [static]

Definition at line 6583 of file io.c.

References GetOpenFile, rb_io_t::mode, rb_secure(), and RTEST.

Referenced by Init_IO().

static VALUE rb_io_set_encoding ( int  argc,
VALUE argv,
VALUE  io 
) [static]
static VALUE rb_io_set_lineno ( VALUE  io,
VALUE  lineno 
) [static]

Definition at line 2635 of file io.c.

References GetOpenFile, rb_io_t::lineno, NUM2INT, and rb_io_check_char_readable().

Referenced by Init_IO().

void rb_io_set_nonblock ( rb_io_t fptr  ) 
static VALUE rb_io_set_pos ( VALUE  io,
VALUE  offset 
) [static]

Definition at line 1155 of file io.c.

References errno, binwrite_arg::fptr, GetOpenFile, io_seek, NUM2OFFT, off_t, OFFT2NUM, rb_io_t::pathv, rb_sys_fail_path, and SEEK_SET.

Referenced by argf_set_pos(), and Init_IO().

static VALUE rb_io_set_sync ( VALUE  io,
VALUE  sync 
) [static]

Definition at line 1323 of file io.c.

References binwrite_arg::fptr, GetOpenFile, GetWriteIO, rb_io_t::mode, and RTEST.

Referenced by Init_IO().

FILE* rb_io_stdio_file ( rb_io_t fptr  ) 
static VALUE rb_io_sync ( VALUE  io  )  [static]

Definition at line 1298 of file io.c.

References FMODE_SYNC, binwrite_arg::fptr, GetOpenFile, GetWriteIO, rb_io_t::mode, and Qtrue.

Referenced by Init_IO().

void rb_io_synchronized ( rb_io_t fptr  ) 

Definition at line 4806 of file io.c.

References rb_io_t::mode, and rb_io_check_initialized().

Referenced by pipe_open(), rb_io_s_pipe(), rb_io_unbuffered(), and rsock_init_sock().

static VALUE rb_io_sysread ( int  argc,
VALUE argv,
VALUE  io 
) [static]
static VALUE rb_io_sysseek ( int  argc,
VALUE argv,
VALUE  io 
) [static]
static VALUE rb_io_syswrite ( VALUE  io,
VALUE  str 
) [static]
VALUE rb_io_taint_check ( VALUE  io  ) 

Definition at line 262 of file io.c.

References OBJ_UNTRUSTED, rb_check_frozen(), rb_eSecurityError, rb_raise(), and rb_safe_level.

Referenced by rb_file_path(), rb_io_inspect(), and rb_io_reopen().

static VALUE rb_io_tell ( VALUE  io  )  [static]

Definition at line 1083 of file io.c.

References errno, binwrite_arg::fptr, GetOpenFile, io_tell, off_t, OFFT2NUM, rb_io_t::pathv, rb_sys_fail_path, and rb_io_t::rbuf_len.

Referenced by argf_tell(), and Init_IO().

static VALUE rb_io_to_io ( VALUE  io  )  [static]

Definition at line 1502 of file io.c.

Referenced by Init_IO().

void rb_io_unbuffered ( rb_io_t fptr  ) 

Definition at line 4813 of file io.c.

References rb_io_synchronized().

VALUE rb_io_ungetbyte ( VALUE  io,
VALUE  b 
)
VALUE rb_io_ungetc ( VALUE  io,
VALUE  c 
)
int rb_io_wait_readable ( int  f  ) 
int rb_io_wait_writable ( int  f  ) 
VALUE rb_io_write ( VALUE  io,
VALUE  str 
)
static VALUE rb_io_write_nonblock ( VALUE  io,
VALUE  str 
) [static]
static VALUE rb_obj_display ( int  argc,
VALUE argv,
VALUE  self 
) [static]

Definition at line 6226 of file io.c.

References rb_io_write(), rb_scan_args(), and rb_stdout.

Referenced by Init_IO().

static VALUE rb_open_file ( int  argc,
VALUE argv,
VALUE  io 
) [static]

Definition at line 5375 of file io.c.

References mode_t, rb_file_open_generic(), and rb_scan_open_args().

Referenced by rb_file_initialize(), and rb_io_open_with_args().

void rb_p ( VALUE  obj  ) 
int rb_pipe ( int *  pipes  ) 

Definition at line 4819 of file io.c.

References errno, rb_gc(), and UPDATE_MAXFD.

Referenced by pipe_open(), and rb_io_s_pipe().

void rb_read_check ( FILE fp  ) 

Definition at line 486 of file io.c.

References fileno, rb_thread_wait_fd(), and STDIO_READ_DATA_PENDING.

static ssize_t rb_read_internal ( int  fd,
void *  buf,
size_t  count 
) [static]
static void rb_scan_open_args ( int  argc,
VALUE argv,
VALUE fname_p,
int *  oflags_p,
int *  fmode_p,
convconfig_t convconfig_p,
mode_t *  perm_p 
) [static]

Definition at line 5352 of file io.c.

References FilePathValue, mode_t, NIL_P, NUM2UINT, pop_last_hash(), rb_io_extract_modeenc(), and rb_scan_args().

Referenced by rb_open_file().

void rb_stdio_set_default_encoding ( void   ) 

Definition at line 8650 of file io.c.

References rb_io_set_encoding(), rb_stderr, rb_stdin, and rb_stdout.

Referenced by process_options().

static int rb_sysopen ( VALUE  fname,
int  oflags,
mode_t  perm 
) [static]
static int rb_sysopen_internal ( struct sysopen_struct data  )  [inline, static]

Definition at line 4510 of file io.c.

References rb_thread_blocking_region(), RUBY_UBF_IO, and sysopen_func().

Referenced by rb_sysopen().

struct timeval rb_time_interval ( VALUE   )  [read]

Definition at line 2371 of file time.c.

Referenced by io_wait(), rb_f_select(), rb_f_sleep(), and rb_mutex_sleep().

void rb_write_error ( const char *  mesg  ) 

Definition at line 6253 of file io.c.

References rb_write_error2().

Referenced by err_append(), rescue_callback(), and warn_printf().

void rb_write_error2 ( const char *  mesg,
long  len 
)

Definition at line 6242 of file io.c.

References rb_io_t::fd, orig_stderr, rb_io_write(), rb_stderr, rb_str_new(), and RFILE.

Referenced by compile_warn_print(), rb_write_error(), and warn_print().

static ssize_t rb_write_internal ( int  fd,
void *  buf,
size_t  count 
) [static]
static VALUE read_all ( rb_io_t fptr,
long  siz,
VALUE  str 
) [static]
static long read_buffered_data ( char *  ptr,
long  len,
rb_io_t fptr 
) [static]
static long remain_size ( rb_io_t fptr  )  [static]
static void rscheck ( const char *  rsptr,
long  rslen,
VALUE  rs 
) [static]

Definition at line 2197 of file io.c.

References rb_eRuntimeError, rb_raise(), RSTRING_LEN, and RSTRING_PTR.

Referenced by rb_io_getline_1().

static int ruby_dup ( int  orig  )  [static]

Definition at line 503 of file io.c.

References errno, rb_gc(), rb_sys_fail(), and UPDATE_MAXFD.

Referenced by rb_io_init_copy().

const char* ruby_get_inplace_mode ( void   ) 

Definition at line 9588 of file io.c.

References ARGF.

void ruby_set_inplace_mode ( const char *  suffix  ) 

Definition at line 9594 of file io.c.

References ARGF, free, and strdup.

Referenced by proc_options().

static VALUE seek_before_access ( VALUE  argp  )  [static]

Definition at line 7916 of file io.c.

References seek_arg::io, seek_arg::mode, seek_arg::offset, rb_io_binmode(), and rb_io_seek().

Referenced by rb_io_s_read().

static VALUE select_internal ( VALUE  read,
VALUE  write,
VALUE  except,
struct timeval tp,
rb_fdset_t fds 
) [static]
static void stdout_setter ( VALUE  val,
ID  id,
VALUE variable 
) [static]

Definition at line 6269 of file io.c.

References id_write, and must_respond_to().

Referenced by Init_IO().

static int swallow ( rb_io_t fptr,
int  term 
) [inline, static]
static VALUE sysopen_func ( void *  ptr  )  [static]

Definition at line 4502 of file io.c.

References sysopen_struct::fname, sysopen_struct::oflags, sysopen_struct::perm, and RSTRING_PTR.

Referenced by rb_sysopen_internal().

static void validate_enc_binmode ( int  fmode,
rb_encoding enc,
rb_encoding enc2 
) [static]
static int wsplit_p ( rb_io_t fptr  )  [static]

Definition at line 537 of file io.c.

References fcntl(), rb_io_t::fd, FMODE_WSPLIT_INITIALIZED, fstat, rb_io_t::mode, O_NONBLOCK, S_ISREG, and stat.

Referenced by io_writable_length().


Variable Documentation

VALUE argf [static]

Definition at line 138 of file io.c.

ID id_flush [static]

Definition at line 140 of file io.c.

Referenced by Init_IO(), and rb_io_flush().

ID id_getc [static]

Definition at line 140 of file io.c.

Referenced by Init_IO().

ID id_read [static]

Definition at line 140 of file io.c.

Referenced by copy_stream_fallback_body(), and Init_IO().

ID id_readpartial [static]

Definition at line 140 of file io.c.

Referenced by copy_stream_fallback_body(), and Init_IO().

ID id_write [static]

Definition at line 140 of file io.c.

Referenced by Init_IO(), io_write(), rb_io_write(), rb_p(), and stdout_setter().

int max_file_descriptor = NOFILE [static]

Definition at line 157 of file io.c.

VALUE orig_stderr [static]

Definition at line 131 of file io.c.

Referenced by Init_IO(), pipe_open(), and rb_write_error2().

VALUE orig_stdout [static]

Definition at line 131 of file io.c.

Referenced by argf_next_argv(), Init_IO(), and pipe_open().

struct pipe_list * pipe_list [static]

Definition at line 123 of file io.c.

Definition at line 136 of file io.c.

Definition at line 130 of file io.c.

Referenced by Init_IO().

Definition at line 124 of file io.c.

Definition at line 125 of file io.c.

Definition at line 126 of file io.c.

Definition at line 127 of file io.c.

Definition at line 133 of file io.c.

Referenced by Init_IO(), rb_ary_join_m(), and rb_io_print().

Definition at line 135 of file io.c.

Definition at line 134 of file io.c.

Definition at line 129 of file io.c.

Definition at line 129 of file io.c.

Definition at line 129 of file io.c.

VALUE sym_autoclose [static]

Definition at line 142 of file io.c.

Referenced by Init_IO(), and rb_io_initialize().

VALUE sym_binmode [static]

Definition at line 142 of file io.c.

Referenced by extract_binmode(), and Init_IO().

VALUE sym_encoding [static]

Definition at line 141 of file io.c.

Referenced by Init_IO(), and rb_io_extract_encoding_option().

VALUE sym_extenc [static]

Definition at line 141 of file io.c.

Referenced by Init_IO(), and rb_io_extract_encoding_option().

VALUE sym_intenc [static]

Definition at line 141 of file io.c.

Referenced by Init_IO(), and rb_io_extract_encoding_option().

VALUE sym_mode [static]

Definition at line 141 of file io.c.

Referenced by Init_IO(), and rb_io_extract_modeenc().

VALUE sym_open_args [static]

Definition at line 141 of file io.c.

Referenced by Init_IO(), and open_key_args().

VALUE sym_perm [static]

Definition at line 141 of file io.c.

Referenced by Init_IO(), and rb_io_extract_modeenc().

VALUE sym_textmode [static]

Definition at line 142 of file io.c.

Referenced by extract_binmode(), and Init_IO().