Ruby
2.4.2p198(2017-09-14revision59899)
|
Go to the source code of this file.
Data Structures | |
struct | rb_io_t |
struct | rb_io_t::rb_io_enc_t |
Macros | |
#define | RB_WAITFD_IN 0x001 |
#define | RB_WAITFD_PRI 0x002 |
#define | RB_WAITFD_OUT 0x004 |
#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_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_mode_flags() is obsolete; use rb_io_modestr_fmode()">] |
#define | rb_io_modenum_flags(oflags) [<"rb_io_modenum_flags() is obsolete; use rb_io_oflags_fmode()">] |
Typedefs | |
typedef struct rb_io_buffer_t | rb_io_buffer_t |
typedef struct rb_io_t | rb_io_t |
#define FMODE_APPEND 0x00000040 |
Definition at line 109 of file io.h.
Referenced by rb_io_fmode_modestr(), rb_io_fmode_oflags(), rb_io_modestr_fmode(), rb_io_oflags_fmode(), and strio_write().
#define FMODE_BINMODE 0x00000004 |
Definition at line 105 of file io.h.
Referenced by argf_next_argv(), extract_binmode(), io_ascii8bit_binmode(), io_reopen(), prep_io(), rb_file_open_internal(), 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(), rb_io_s_binread(), rb_io_s_pipe(), and validate_enc_binmode().
#define FMODE_CREATE 0x00000080 |
Definition at line 110 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 108 of file io.h.
Referenced by io_check_tty(), io_unread(), pipe_open(), pty_open(), rb_io_close_read(), rb_io_close_write(), and rsock_init_sock().
#define FMODE_READABLE 0x00000001 |
Definition at line 102 of file io.h.
Referenced by argf_next_argv(), bsock_close_read(), bsock_close_write(), do_writeconv(), fptr_finalize_flush(), Init_IO(), io_reopen(), pipe_open(), prep_stdio(), rb_f_backquote(), rb_io_check_char_readable(), rb_io_close_read(), rb_io_close_write(), rb_io_extract_modeenc(), rb_io_flush_raw(), rb_io_fmode_modestr(), rb_io_fmode_oflags(), rb_io_modestr_fmode(), rb_io_oflags_fmode(), rb_io_s_binread(), rb_io_sysseek(), rb_pipe(), strio_close_read(), strio_init(), strio_set_string(), and validate_enc_binmode().
#define FMODE_READWRITE (FMODE_READABLE|FMODE_WRITABLE) |
Definition at line 104 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_finalize(), strio_init(), and strio_set_string().
#define FMODE_SETENC_BY_BOM 0x00100000 |
Definition at line 115 of file io.h.
Referenced by parse_mode_enc(), rb_file_open_generic(), rb_io_ext_int_to_encs(), rb_io_initialize(), and rb_io_modestr_fmode().
#define FMODE_SYNC 0x00000008 |
Definition at line 106 of file io.h.
Referenced by console_dev(), Init_IO(), io_binwrite(), pipe_open(), pty_getpty(), pty_open(), rb_io_sync(), and rb_io_synchronized().
#define FMODE_TEXTMODE 0x00001000 |
Definition at line 113 of file io.h.
Referenced by extract_binmode(), io_ascii8bit_binmode(), rb_io_binmode(), rb_io_modestr_fmode(), rb_io_s_pipe(), and validate_enc_binmode().
#define FMODE_TRUNC 0x00000800 |
Definition at line 112 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 107 of file io.h.
Referenced by io_binwrite(), io_check_tty(), io_fwrite(), pty_open(), and rb_io_getbyte().
#define FMODE_WRITABLE 0x00000002 |
Definition at line 103 of file io.h.
Referenced by argf_next_argv(), bsock_close_read(), bsock_close_write(), fptr_finalize_flush(), 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_extract_modeenc(), rb_io_flush_raw(), rb_io_fmode_modestr(), rb_io_fmode_oflags(), rb_io_modestr_fmode(), rb_io_oflags_fmode(), rb_io_reopen(), rb_io_sysseek(), rb_pipe(), strio_close_write(), and strio_init().
#define GetOpenFile | ( | obj, | |
fp | |||
) | rb_io_check_closed((fp) = RFILE(rb_io_taint_check(obj))->fptr) |
Definition at line 120 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(), check_getline_args(), console_beep(), console_dev(), console_echo_p(), console_iflush(), console_ioflush(), console_oflush(), console_set_cooked(), console_set_echo(), console_set_raw(), copy_stream_body(), dump_output(), get_write_fd(), io_getpartial(), io_nread(), io_read(), io_read_nonblock(), io_ready_p(), io_reopen(), io_set_encoding_by_bom(), io_wait_readable(), io_wait_readwrite(), io_wait_writable(), io_write(), io_write_nonblock(), ip_addr(), ip_peeraddr(), ossl_ssl_read_internal(), ossl_ssl_setup(), ossl_ssl_write_internal(), ossl_start_ssl(), prep_stdio(), rb_f_backquote(), rb_fiddle_ptr_s_to_ptr(), 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_advise(), rb_io_ascii8bit_binmode(), rb_io_binmode(), rb_io_binmode_p(), rb_io_bufread(), rb_io_bufwrite(), rb_io_check_char_readable(), rb_io_each_byte(), rb_io_each_char(), rb_io_each_codepoint(), rb_io_eof(), rb_io_external_encoding(), rb_io_flush_raw(), rb_io_getbyte(), rb_io_getc(), rb_io_getline_1(), rb_io_gets_internal(), 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_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(), setup_narg(), sock_accept(), sock_accept_nonblock(), sock_bind(), sock_connect(), sock_connect_nonblock(), sock_sysaccept(), tcp_accept(), tcp_accept_nonblock(), tcp_sysaccept(), ttymode(), udp_bind(), udp_connect(), and udp_send().
#define MakeOpenFile | ( | obj, | |
fp | |||
) |
Definition at line 122 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_mode_flags() is obsolete; use rb_io_modestr_fmode()">] |
#define rb_io_modenum_flags | ( | oflags | ) | [<"rb_io_modenum_flags() is obsolete; use rb_io_oflags_fmode()">] |
#define RB_WAITFD_IN 0x001 |
Definition at line 47 of file io.h.
Referenced by io_ready_p(), io_wait_readable(), io_wait_readwrite(), mustbe_callable(), rb_thread_fd_select(), rb_thread_wait_fd_rw(), rb_wait_for_single_fd(), select_single(), wait_connectable(), and wait_mode_sym().
#define RB_WAITFD_OUT 0x004 |
Definition at line 49 of file io.h.
Referenced by io_wait_writable(), rb_thread_fd_select(), rb_thread_wait_fd_rw(), rb_wait_for_single_fd(), select_single(), wait_connectable(), and wait_mode_sym().
#define RB_WAITFD_PRI 0x002 |
Definition at line 48 of file io.h.
Referenced by rb_thread_fd_select(), rb_wait_for_single_fd(), and select_single().
typedef struct rb_io_buffer_t rb_io_buffer_t |
CONSTFUNC | ( | int | rb_io_oflags_fmodeint oflags | ) |
NORETURN | ( | void | rb_eof_errorvoid | ) |
RUBY_SYMBOL_EXPORT_BEGIN PACKED_STRUCT_UNALIGNED | ( | struct rb_io_buffer_t { char *ptr;int off;int len;int capa;} | ) |
Definition at line 5537 of file io.c.
References errno, NULL, rb_gc(), rb_gc_for_fd(), rb_syserr_fail(), and rb_warn().
Referenced by rb_io_stdio_file().
Definition at line 1448 of file io.c.
References binwrite_arg::fptr, GetOpenFile, io_binwrite(), and rb_io_check_writable().
void rb_io_check_byte_readable | ( | rb_io_t * | fptr | ) |
Definition at line 813 of file io.c.
References rb_eIOError, rb_io_check_char_readable(), rb_raise(), and READ_CHAR_PENDING.
Referenced by copy_stream_body(), io_getpartial(), io_read(), io_read_nonblock(), rb_io_check_readable(), rb_io_each_byte(), rb_io_getbyte(), rb_io_sysread(), and rb_io_ungetbyte().
void rb_io_check_char_readable | ( | rb_io_t * | fptr | ) |
Definition at line 794 of file io.c.
References FMODE_READABLE, GetOpenFile, io_fflush(), rb_io_t::mode, rb_eIOError, rb_io_check_closed(), rb_raise(), rb_sys_fail(), rb_io_t::tied_io_for_writing, and rb_io_t::wbuf.
Referenced by io_read(), rb_io_check_byte_readable(), rb_io_each_char(), rb_io_each_codepoint(), rb_io_eof(), rb_io_getc(), rb_io_getline_0(), rb_io_lineno(), rb_io_set_lineno(), and rb_io_ungetc().
void rb_io_check_closed | ( | rb_io_t * | ) |
Definition at line 639 of file io.c.
References closed_stream, rb_io_t::fd, rb_eIOError, rb_io_check_initialized(), and rb_raise().
Referenced by bsock_getsockopt(), bsock_setsockopt(), io_binwrite(), io_binwrite_string(), io_bufread(), io_fflush(), io_fillbuf(), io_unread(), io_wait_readwrite(), rb_file_flock(), rb_io_autoclose_p(), rb_io_check_char_readable(), rb_io_check_writable(), rb_io_fileno(), rb_io_sysread(), rsock_s_recvfrom(), rsock_s_recvfrom_nonblock(), udp_bind_internal(), udp_connect_internal(), udp_send_internal(), and wait_for_single_fd().
void rb_io_check_initialized | ( | rb_io_t * | ) |
Definition at line 631 of file io.c.
References rb_eIOError, and rb_raise().
Referenced by prepare_readline(), rb_file_path(), rb_io_check_closed(), rb_io_get_fptr(), and rb_io_synchronized().
Definition at line 662 of file io.c.
References rb_check_convert_type(), and T_FILE.
Referenced by argf_external_encoding(), argf_internal_encoding(), check_exec_redirect(), copy_stream_body(), dump_output(), io_write(), rb_io_reopen(), and rb_io_s_try_convert().
void rb_io_check_readable | ( | rb_io_t * | ) |
Definition at line 822 of file io.c.
References rb_io_check_byte_readable().
Referenced by io_nread(), io_ready_p(), io_wait_readable(), ossl_ssl_setup(), and rb_io_bufread().
void rb_io_check_writable | ( | rb_io_t * | ) |
Definition at line 846 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.
Referenced by copy_stream_body(), io_wait_writable(), io_write(), io_write_nonblock(), ossl_ssl_setup(), rb_io_bufwrite(), and rb_io_syswrite().
int rb_io_extract_encoding_option | ( | VALUE | opt, |
rb_encoding ** | enc_p, | ||
rb_encoding ** | enc2_p, | ||
int * | fmode_p | ||
) |
Definition at line 5231 of file io.c.
References NIL_P, NULL, parse_mode_enc(), PRIsVALUE, Qnil, Qundef, rb_check_string_type(), rb_enc_from_encoding(), rb_enc_from_index(), rb_enc_get(), rb_hash_lookup2(), rb_io_ext_int_to_encs(), rb_to_encoding(), rb_to_encoding_index(), rb_warn(), ruby_verbose, StringValueCStr, sym_encoding, sym_extenc, and sym_intenc.
Referenced by rb_gzfile_ecopts(), and rb_io_extract_modeenc().
int rb_io_fptr_finalize | ( | rb_io_t * | ) |
Definition at line 4399 of file io.c.
References clear_codeconv(), rb_io_t::fd, free, free_io_buffer(), rb_io_t::pathv, Qnil, rb_io_fptr_cleanup(), rb_io_t::rbuf, RUBY_FUNC_EXPORTED, TRUE, rb_io_t::wbuf, and rb_io_t::write_lock.
Referenced by make_io_zombie(), pipe_del_fptr(), rb_f_backquote(), and rb_io_make_open_file().
Definition at line 656 of file io.c.
References rb_convert_type(), and T_FILE.
Referenced by io_reopen(), rb_io_init_copy(), and select_internal().
Definition at line 668 of file io.c.
References rb_io_get_fptr(), and rb_io_t::tied_io_for_writing.
Referenced by dump_output(), and io_getch().
Definition at line 7529 of file io.c.
References Check_Type, rb_io_close(), rb_io_fptr_finalize(), rb_io_fptr_new(), RFILE, and T_FILE.
int rb_io_modestr_fmode | ( | const char * | modestr | ) |
Definition at line 4967 of file io.c.
References fmode, 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, rb_raise(), strchr(), and strlen().
Referenced by pty_getpty(), rb_file_open_internal(), rb_io_extract_modeenc(), rb_io_modestr_oflags(), and strio_init().
int rb_io_modestr_oflags | ( | const char * | modestr | ) |
Definition at line 5086 of file io.c.
References rb_io_fmode_oflags(), and rb_io_modestr_fmode().
Referenced by check_exec_redirect(), and rb_io_s_sysopen().
void rb_io_read_check | ( | rb_io_t * | ) |
Definition at line 867 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 858 of file io.c.
References READ_CHAR_PENDING, and READ_DATA_PENDING.
Referenced by io_nread(), io_ready_p(), io_wait_readable(), io_wait_readwrite(), rsock_s_recvfrom(), and rsock_s_recvfrom_nonblock().
void rb_io_set_nonblock | ( | rb_io_t * | fptr | ) |
Definition at line 2458 of file io.c.
References F_SETFL, fcntl(), rb_io_t::fd, O_NONBLOCK, rb_io_t::pathv, rb_sys_fail_path, and rb_w32_set_nonblock().
Referenced by io_getpartial(), io_read_nonblock(), io_write_nonblock(), rsock_s_accept_nonblock(), rsock_s_recvfrom_nonblock(), and sock_connect_nonblock().
Definition at line 679 of file io.c.
References GetWriteIO, Qnil, rb_io_get_fptr(), RTEST, and rb_io_t::tied_io_for_writing.
Referenced by argf_close(), and argf_next_argv().
Definition at line 7481 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 dump_output(), and rb_fiddle_ptr_s_to_ptr().
void rb_io_synchronized | ( | rb_io_t * | ) |
Definition at line 5809 of file io.c.
References FMODE_SYNC, rb_io_t::mode, and rb_io_check_initialized().
Referenced by pipe_open(), rb_io_s_pipe(), rb_io_unbuffered(), and rsock_init_sock().
Definition at line 624 of file io.c.
References rb_check_frozen.
Referenced by get_strio(), prepare_readline(), rb_file_path(), rb_io_close_read(), rb_io_close_write(), rb_io_reopen(), strio_reopen(), and strio_set_string().
int rb_io_wait_readable | ( | int | ) |
Definition at line 1104 of file io.c.
References closed_stream, errno, EWOULDBLOCK, FALSE, rb_eIOError, rb_raise(), rb_thread_check_ints(), rb_thread_wait_fd(), and TRUE.
Referenced by io_bufread(), io_fillbuf(), 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 1130 of file io.c.
References closed_stream, errno, EWOULDBLOCK, FALSE, rb_eIOError, rb_raise(), rb_thread_check_ints(), rb_thread_fd_writable(), 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_internal().
Definition at line 416 of file file.c.
References rb_cStat, stat, and stat_new_0().
Referenced by rb_file_lstat(), rb_file_s_lstat(), rb_file_s_stat(), and rb_io_stat().
int rb_wait_for_single_fd | ( | int | fd, |
int | events, | ||
struct timeval * | tv | ||
) |
Definition at line 3992 of file thread.c.
References select_args::as, errno, select_args::error, select_args::except, waiting_fd::fd, select_args::fd, init_set_fd(), NULL, rb_ensure(), RB_WAITFD_IN, RB_WAITFD_OUT, RB_WAITFD_PRI, select_args::read, select_single(), select_single_cleanup(), select_args::tv, and select_args::write.
Referenced by mustbe_callable(), rb_thread_fd_select(), rb_thread_wait_fd_rw(), wait_connectable(), and wait_for_single_fd().