include/ruby/io.h File Reference

#include <stdio.h>
#include <errno.h>
#include "ruby/encoding.h"

Include dependency graph for io.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  rb_io_t
struct  rb_io_t::rb_io_enc_t

Defines

#define RUBY_IO_H   1
#define HAVE_RB_IO_T   1
#define FMODE_READABLE   0x00000001
#define FMODE_WRITABLE   0x00000002
#define FMODE_READWRITE   (FMODE_READABLE|FMODE_WRITABLE)
#define FMODE_BINMODE   0x00000004
#define FMODE_SYNC   0x00000008
#define FMODE_TTY   0x00000010
#define FMODE_DUPLEX   0x00000020
#define FMODE_APPEND   0x00000040
#define FMODE_CREATE   0x00000080
#define FMODE_WSPLIT   0x00000200
#define FMODE_WSPLIT_INITIALIZED   0x00000400
#define FMODE_TRUNC   0x00000800
#define FMODE_TEXTMODE   0x00001000
#define FMODE_SETENC_BY_BOM   0x00100000
#define GetOpenFile(obj, fp)   rb_io_check_closed((fp) = RFILE(rb_io_taint_check(obj))->fptr)
#define MakeOpenFile(obj, fp)
#define rb_io_mode_flags(modestr)   rb_io_modestr_fmode(modestr)
#define rb_io_modenum_flags(oflags)   rb_io_oflags_fmode(oflags)

Functions

FILErb_io_stdio_file (rb_io_t *fptr)
FILErb_fdopen (int, const char *)
int rb_io_modestr_fmode (const char *modestr)
int rb_io_modestr_oflags (const char *modestr)
int rb_io_oflags_fmode (int oflags)
void rb_io_check_writable (rb_io_t *)
void rb_io_check_readable (rb_io_t *)
int rb_io_fptr_finalize (rb_io_t *)
void rb_io_synchronized (rb_io_t *)
void rb_io_check_initialized (rb_io_t *)
void rb_io_check_closed (rb_io_t *)
int rb_io_wait_readable (int)
int rb_io_wait_writable (int)
void rb_io_set_nonblock (rb_io_t *fptr)
VALUE rb_io_taint_check (VALUE)
 NORETURN (void rb_eof_error(void))
void rb_io_read_check (rb_io_t *)
int rb_io_read_pending (rb_io_t *)
 DEPRECATED (void rb_read_check(FILE *))


Define Documentation

#define FMODE_APPEND   0x00000040

Definition at line 88 of file io.h.

Referenced by rb_io_fmode_modestr(), rb_io_fmode_oflags(), rb_io_modestr_fmode(), rb_io_oflags_fmode(), strio_putc(), and strio_write().

#define FMODE_BINMODE   0x00000004

Definition at line 84 of file io.h.

Referenced by argf_next_argv(), extract_binmode(), io_reopen(), prep_io(), rb_file_open_internal(), rb_io_ascii8bit_binmode(), rb_io_binmode(), rb_io_binmode_p(), rb_io_extract_modeenc(), rb_io_fmode_oflags(), rb_io_init_copy(), rb_io_modestr_fmode(), rb_io_oflags_fmode(), and validate_enc_binmode().

#define FMODE_CREATE   0x00000080

Definition at line 89 of file io.h.

Referenced by rb_io_fmode_modestr(), rb_io_fmode_oflags(), rb_io_modestr_fmode(), and rb_io_oflags_fmode().

#define FMODE_DUPLEX   0x00000020

Definition at line 87 of file io.h.

Referenced by io_check_tty(), io_unread(), pipe_open(), pty_open(), rb_io_close_write(), and rsock_init_sock().

#define FMODE_READABLE   0x00000001

Definition at line 81 of file io.h.

Referenced by argf_next_argv(), bsock_close_read(), bsock_close_write(), fptr_finalize(), Init_IO(), io_reopen(), pipe_open(), rb_f_backquote(), rb_io_check_char_readable(), rb_io_close_read(), rb_io_close_write(), rb_io_extract_modeenc(), rb_io_flush(), rb_io_fmode_modestr(), rb_io_fmode_oflags(), rb_io_modestr_fmode(), rb_io_oflags_fmode(), rb_io_sysseek(), strio_close_read(), strio_init(), strio_set_string(), and validate_enc_binmode().

#define FMODE_READWRITE   (FMODE_READABLE|FMODE_WRITABLE)

Definition at line 83 of file io.h.

Referenced by pty_open(), rb_io_fmode_modestr(), rb_io_fmode_oflags(), rb_io_initialize(), rb_io_modestr_fmode(), rb_io_oflags_fmode(), rb_io_reopen(), rsock_init_sock(), strio_close(), strio_finalize(), strio_init(), and strio_set_string().

#define FMODE_SETENC_BY_BOM   0x00100000

Definition at line 96 of file io.h.

Referenced by parse_mode_enc(), rb_file_open_generic(), rb_io_initialize(), and rb_io_modestr_fmode().

#define FMODE_SYNC   0x00000008

Definition at line 85 of file io.h.

Referenced by Init_IO(), io_binwrite(), pipe_open(), pty_getpty(), pty_open(), rb_io_set_sync(), rb_io_sync(), and rb_io_synchronized().

#define FMODE_TEXTMODE   0x00001000

Definition at line 94 of file io.h.

Referenced by extract_binmode(), rb_io_ascii8bit_binmode(), rb_io_binmode(), and rb_io_modestr_fmode().

#define FMODE_TRUNC   0x00000800

Definition at line 93 of file io.h.

Referenced by rb_io_fmode_oflags(), rb_io_modestr_fmode(), and rb_io_oflags_fmode().

#define FMODE_TTY   0x00000010

Definition at line 86 of file io.h.

Referenced by io_binwrite(), io_check_tty(), pty_open(), and rb_io_getbyte().

#define FMODE_WRITABLE   0x00000002

Definition at line 82 of file io.h.

Referenced by argf_next_argv(), bsock_close_read(), bsock_close_write(), fptr_finalize(), Init_IO(), io_reopen(), pipe_open(), rb_file_flock(), rb_file_size(), rb_io_check_writable(), rb_io_close_read(), rb_io_close_write(), rb_io_external_encoding(), rb_io_flush(), rb_io_fmode_modestr(), rb_io_fmode_oflags(), rb_io_modestr_fmode(), rb_io_oflags_fmode(), rb_io_reopen(), rb_io_sysseek(), strio_close_write(), and strio_init().

#define FMODE_WSPLIT   0x00000200

Definition at line 91 of file io.h.

Referenced by rb_io_ctl(), and wsplit_p().

#define FMODE_WSPLIT_INITIALIZED   0x00000400

Definition at line 92 of file io.h.

Referenced by rb_io_ctl(), and wsplit_p().

#define GetOpenFile ( obj,
fp   )     rb_io_check_closed((fp) = RFILE(rb_io_taint_check(obj))->fptr)

Definition at line 98 of file io.h.

Referenced by argf_next_argv(), argf_set_encoding(), bsock_close_read(), bsock_close_write(), bsock_do_not_reverse_lookup(), bsock_do_not_reverse_lookup_set(), bsock_getpeername(), bsock_getsockname(), bsock_getsockopt(), bsock_local_address(), bsock_remote_address(), bsock_s_for_fd(), bsock_setsockopt(), bsock_shutdown(), check_exec_redirect_fd(), copy_stream_body(), io_getpartial(), io_nread(), io_read(), io_ready_p(), io_reopen(), io_set_encoding_by_bom(), io_wait(), io_write(), ip_addr(), ip_peeraddr(), ossl_obj2bio(), ossl_ssl_read_internal(), ossl_ssl_setup(), ossl_ssl_write_internal(), ossl_start_ssl(), prep_stdio(), prepare_getline_args(), rb_dlptr_s_to_ptr(), rb_f_backquote(), rb_file_atime(), rb_file_chmod(), rb_file_chown(), rb_file_ctime(), rb_file_flock(), rb_file_lstat(), rb_file_mtime(), rb_file_size(), rb_io_ascii8bit_binmode(), rb_io_autoclose_p(), rb_io_binmode(), rb_io_binmode_p(), rb_io_check_char_readable(), rb_io_close_read(), rb_io_close_write(), rb_io_ctl(), rb_io_each_byte(), rb_io_each_char(), rb_io_each_codepoint(), rb_io_eof(), rb_io_external_encoding(), rb_io_fileno(), rb_io_flush(), rb_io_getbyte(), rb_io_getc(), rb_io_getline_1(), rb_io_init_copy(), rb_io_internal_encoding(), rb_io_isatty(), rb_io_lineno(), rb_io_pid(), rb_io_rewind(), rb_io_s_pipe(), rb_io_seek(), rb_io_set_autoclose(), rb_io_set_encoding(), rb_io_set_lineno(), rb_io_set_pos(), rb_io_set_sync(), rb_io_stat(), rb_io_sync(), rb_io_sysread(), rb_io_sysseek(), rb_io_syswrite(), rb_io_tell(), rb_io_ungetbyte(), rb_io_ungetc(), rb_io_write_nonblock(), rb_stat(), readline_s_set_input(), readline_s_set_output(), rsock_bsock_send(), rsock_io_socket_addrinfo(), rsock_s_recvfrom(), rsock_s_recvfrom_nonblock(), rsock_sock_listen(), select_internal(), sock_accept(), sock_accept_nonblock(), sock_bind(), sock_connect(), sock_connect_nonblock(), sock_sysaccept(), tcp_accept(), tcp_accept_nonblock(), tcp_sysaccept(), udp_bind(), udp_connect(), and udp_send().

#define HAVE_RB_IO_T   1

Definition at line 79 of file io.h.

#define MakeOpenFile ( obj,
fp   ) 

Definition at line 100 of file io.h.

Referenced by pipe_open(), prep_io(), pty_getpty(), pty_open(), rb_file_open_generic(), rb_io_init_copy(), rb_io_initialize(), and rsock_init_sock().

#define rb_io_mode_flags ( modestr   )     rb_io_modestr_fmode(modestr)

Definition at line 158 of file io.h.

Referenced by pty_getpty(), and strio_init().

#define rb_io_modenum_flags ( oflags   )     rb_io_oflags_fmode(oflags)

Definition at line 159 of file io.h.

Referenced by strio_init().

#define RUBY_IO_H   1

Definition at line 13 of file io.h.


Function Documentation

DEPRECATED ( void   rb_read_check(FILE *)  ) 

NORETURN ( void   rb_eof_error(void)  ) 

FILE* rb_fdopen ( int  ,
const char *   
)

Definition at line 4557 of file io.c.

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

Referenced by rb_io_stdio_file().

void rb_io_check_closed ( rb_io_t  ) 

Definition at line 279 of file io.c.

References rb_io_t::fd, rb_eIOError, rb_io_check_initialized(), and rb_raise().

Referenced by bsock_getsockopt(), bsock_setsockopt(), io_binwrite(), io_fflush(), io_fread(), io_unread(), io_wait(), rb_file_flock(), rb_io_check_char_readable(), rb_io_check_writable(), rb_io_close_m(), rb_io_sysread(), rb_io_syswrite(), rsock_s_recvfrom(), and rsock_s_recvfrom_nonblock().

void rb_io_check_initialized ( rb_io_t  ) 

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().

void rb_io_check_readable ( rb_io_t  ) 

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  ) 

Definition at line 465 of file io.c.

References FMODE_WRITABLE, io_unread(), rb_io_t::mode, rb_eIOError, rb_io_check_closed(), rb_raise(), and rb_io_t::rbuf_len.

Referenced by copy_stream_body(), io_write(), ossl_ssl_setup(), rb_io_syswrite(), and rb_io_write_nonblock().

int rb_io_fptr_finalize ( rb_io_t  ) 

Definition at line 3529 of file io.c.

References clear_codeconv(), rb_io_t::fd, finish_writeconv_arg::fptr, free, rb_io_t::pathv, Qnil, rb_io_fptr_cleanup(), rb_io_t::rbuf, TRUE, rb_io_t::wbuf, and rb_io_t::write_lock.

int rb_io_modestr_fmode ( const char *  modestr  ) 

Definition at line 4042 of file io.c.

References FMODE_APPEND, FMODE_BINMODE, FMODE_CREATE, FMODE_READABLE, FMODE_READWRITE, FMODE_SETENC_BY_BOM, FMODE_TEXTMODE, FMODE_TRUNC, FMODE_WRITABLE, io_encname_bom_p(), NULL, rb_eArgError, and rb_raise().

Referenced by rb_file_open_internal(), rb_io_extract_modeenc(), rb_io_modestr_oflags(), and rb_io_reopen().

int rb_io_modestr_oflags ( const char *  modestr  ) 

Definition at line 4161 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 4091 of file io.c.

References FMODE_APPEND, FMODE_BINMODE, FMODE_CREATE, FMODE_READABLE, FMODE_READWRITE, FMODE_TRUNC, FMODE_WRITABLE, and O_BINARY.

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

void rb_io_read_check ( rb_io_t  ) 

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  ) 

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().

void rb_io_set_nonblock ( rb_io_t fptr  ) 

Definition at line 1825 of file io.c.

References F_SETFL, fcntl(), rb_io_t::fd, O_NONBLOCK, rb_io_t::pathv, and rb_sys_fail_path.

Referenced by io_getpartial(), rb_io_write_nonblock(), rsock_s_accept_nonblock(), rsock_s_recvfrom_nonblock(), and sock_connect_nonblock().

FILE* rb_io_stdio_file ( rb_io_t fptr  ) 

Definition at line 6348 of file io.c.

References rb_io_t::fd, rb_io_t::mode, rb_fdopen(), rb_io_fmode_oflags(), rb_io_oflags_modestr(), and rb_io_t::stdio_file.

Referenced by rb_dlptr_s_to_ptr(), readline_s_set_input(), and readline_s_set_output().

void rb_io_synchronized ( rb_io_t  ) 

Definition at line 4820 of file io.c.

References FMODE_SYNC, pipe_list::fptr, rb_io_t::mode, and rb_io_check_initialized().

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

VALUE rb_io_taint_check ( VALUE   ) 

Definition at line 262 of file io.c.

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

Referenced by get_strio(), rb_file_path(), rb_io_inspect(), rb_io_reopen(), strio_reopen(), and strio_set_string().

int rb_io_wait_readable ( int   ) 

Definition at line 677 of file io.c.

References errno, EWOULDBLOCK, FALSE, NULL, rb_eIOError, rb_ensure(), rb_fd_init, rb_fd_ptr, rb_fd_set, rb_fd_term, rb_raise(), rb_thread_select(), rb_thread_wait_fd(), and TRUE.

Referenced by io_fillbuf(), io_fread(), io_getpartial(), ossl_ssl_read_internal(), ossl_ssl_write_internal(), ossl_start_ssl(), rsock_s_accept(), and rsock_s_recvfrom().

int rb_io_wait_writable ( int   ) 

Definition at line 722 of file io.c.

References errno, EWOULDBLOCK, FALSE, NULL, rb_eIOError, rb_ensure(), rb_fd_init, rb_fd_ptr, rb_fd_set, rb_fd_term, rb_raise(), rb_thread_fd_writable(), rb_thread_select(), and TRUE.

Referenced by finish_writeconv(), io_binwrite(), io_fflush(), ossl_ssl_read_internal(), ossl_ssl_write_internal(), ossl_start_ssl(), rsock_bsock_send(), and udp_send().


Generated on Wed Aug 10 09:18:39 2011 for Ruby by  doxygen 1.4.7