IO
参考:
概要
参考:
入出力 | Ruby アソシエーション (www.ruby.or.jp)
open
参考:
singleton method IO.for_fd (Ruby 2.6.0)
IO.pipe
パイプを作成し、相互に入出力が繋がった二つの IO
オブジェクトを配列に格納して返す。
r, w = IO.pipe
参考:
Ruby は IO.pipe を使えば、パイプを作ることが出来る | それマグで!
Unix のパイプを Ruby で扱う | JanGaJan.com
パイプとソケットでのプロセス間通信を Ruby で再確認した | えいのうにっき
singleton method IO.pipe (Ruby 2.6.0)
IO.read
参考:
singleton method IO.read (Ruby 2.6.0)
Ruby の IO.read でバイナリファイルを読み込むときの注意点 – Qiita
each / each_line
一行ずつ文字列として読み込んで、それをパラメータとしてブロックを実行する。
参考:
instance method IO#each (Ruby 2.6.0)
each_char
一文字ずつ読み込んで、それをパラメータとしてブロックを実行する。
参考:
instance method IO#each_char (Ruby 2.6.0)
each_codepoint
コードポイントを一つずつ読み込んで、それをパラメータとしてブロックを実行する。
参考:
instance method IO#each_codepoint (Ruby 2.6.0)
gets
一行読み込んで文字列として返す。EOF に到達した場合は nil
を返す。
参考:
instance method IO#gets (Ruby 2.6.0)
readline
一行読み込んで文字列として返す。EOF に到達した場合は EOFError
例外が発生する。
参考:
instance method IO#readline (Ruby 2.6.0)
read
参考:
instance method IO#read (Ruby 2.6.0)
puts
参考:
instance method IO#puts (Ruby 2.6.0)
getc / ungetc
参考:
instance method IO#getc (Ruby 2.6.0)
instance method IO#ungetc (Ruby 2.6.0)
Ruby で gets をやり直す ungets 的なこと | それマグで!
Similar function peek( ); (from C++) in Ruby – Stack Overflow
read_nonblock / readpartial
read
:指定したバイト数もしくは EOF まで読み込むreadpartial
:1バイト以上受け取るとリターンするread_nonblock
:データがない場合には例外を発生させる
参考:
Working with TCP Sockets 読書メモ 第7章 ノンブロッキング IO | Strings of Life
instance method IO#read_nonblock (Ruby 2.6.0)
instance method IO#readpartial (Ruby 2.6.0)
instance method IO#read (Ruby 2.6.0)
write
参考:
instance method IO#write (Ruby 2.6.0)
write_nonblock
参考:
instance method IO#write_nonblock (Ruby 2.6.0)
How to timeout named pipes in ruby? – Stack Overflow
<<
参考:
instance method IO#<< (Ruby 2.6.0)
eof / eof?
IO
がファイルの終端 (EOF) に達した場合に true
を返す。パイプやソケットの場合には、データを受信するか close
されるまでブロックする。読み込みようにオープンされていない場合には IOError
が発生する。
参考:
instance method IO#eof (Ruby 2.6.0)
flush
参考:
instance method IO#flush (Ruby 2.6.0)
close_write
参考:
instance method IO#close_write (Ruby 2.6.0)
close
参考:
instance method IO#close (Ruby 2.6.0)
Ruby の File.open は明示的に close しないと何が起こる? | QA@IT
Ruby pipe from child’s stdout not closing/how to detect empty pipe – Stack Overflow
closed?
IO
が読み書き共に完全にクローズされている場合に true
を返す。
参考:
instance method IO#closed? (Ruby 2.6.0)
sync
参考:
instance method IO#sync (Ruby 2.6.0)
fileno
ファイルデスクリプタを表す整数
参考:
instance method IO#fileno (Ruby 2.6.0)
IO.select
入力/出力/例外待ちの IO
オブジェクトの中から準備できたものをそれぞれ配列にして、配列の配列として返す。タイムアウトした場合は nil
を返す。
参考:
singleton method IO.select (Ruby 2.6.0)
IO.select の使い方
参考:
Open3 で標準出力と標準エラー出力からの出力を全て読む | 数と符号と計算機と日記
Ruby の IO.select を使って、TCP socket で返信がなくなったら自動でコネクションをきる方法 | 脳汁 portal
Man page of SELECT | JM Project
select(2) | Linux manual page (man7.org)
IO#select returns IO objects despite EOF — is this expected? – Stack Overflow
Understanding IO.select when reading socket in Ruby – Stack Overflow
IO.select におけるタイムアウト
参考:
IO.select timeout problem – Ruby-Forum
IO.select で Open3.popen3 を処理する
参考:
外部コマンド実行時の標準出力、標準エラーを随時受け取る | There’s an echo in my head
ノンブロッキング IO
参考:
Working with TCP Sockets 読書メモ 第7章 ノンブロッキング IO | Strings of Life
TCPServer#accept_nonblock の実装を少し追った | kitak’s blog
Nonblocking IO read | Ruby-Forum
IOError
参考:
EOFError
参考: