IO
公式サイト:
class IO | Ruby リファレンスマニュアル [公式]
概要
参考:
open
参考:
IO.for_fd | Ruby リファレンスマニュアル [公式]
IO.pipe
パイプを作成し、相互に入出力が繋がった二つの IO
オブジェクトを配列に格納して返す。
r, w = IO.pipe
Code language: Ruby (ruby)
参考:
Ruby は IO.pipe を使えば、パイプを作ることが出来る | それマグで!
Unix のパイプを Ruby で扱う | JanGaJan.com
パイプとソケットでのプロセス間通信を Ruby で再確認した | えいのうにっき
IO.pipe | Ruby リファレンスマニュアル [公式]
IO.read
参考:
Ruby の IO.read でバイナリファイルを読み込むときの注意点 – Qiita
IO.read | Ruby リファレンスマニュアル [公式]
each / each_line
一行ずつ文字列として読み込んで、それをパラメータとしてブロックを実行する。
参考:
IO#each | Ruby リファレンスマニュアル [公式]
each_char
一文字ずつ読み込んで、それをパラメータとしてブロックを実行する。
参考:
IO#each_char | Ruby リファレンスマニュアル [公式]
each_codepoint
コードポイントを一つずつ読み込んで、それをパラメータとしてブロックを実行する。
参考:
IO#each_codepoint | Ruby リファレンスマニュアル [公式]
gets
一行読み込んで文字列として返す。EOF に到達した場合は nil
を返す。
参考:
IO#gets | Ruby リファレンスマニュアル [公式]
readline
一行読み込んで文字列として返す。EOF に到達した場合は EOFError
例外が発生する。
参考:
IO#readline | Ruby リファレンスマニュアル [公式]
readlines
ファイルを読み込んで、各行を要素として配列に読み込む。
user_names = File.readlines("user_names.txt")
Code language: Ruby (ruby)
参考:
IO.readlines | Ruby リファレンスマニュアル [公式]
IO#readlines | Ruby リファレンスマニュアル [公式]
Read Lines of a Files | Delft Stack
How to read lines from file into array? – Stack Overflow
read
参考:
IO#read | Ruby リファレンスマニュアル [公式]
puts
参考:
IO#puts | Ruby リファレンスマニュアル [公式]
getc / ungetc
参考:
Ruby で gets をやり直す ungets 的なこと | それマグで!
IO#getc | Ruby リファレンスマニュアル [公式]
IO#ungetc | Ruby リファレンスマニュアル [公式]
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
IO#read_nonblock | Ruby リファレンスマニュアル [公式]
IO#readpartial | Ruby リファレンスマニュアル [公式]
IO#read | Ruby リファレンスマニュアル [公式]
write
参考:
IO#write | Ruby リファレンスマニュアル [公式]
write_nonblock
参考:
IO#write_nonblock | Ruby リファレンスマニュアル [公式]
How to timeout named pipes in ruby? – Stack Overflow
<<
参考:
eof / eof?
IO
がファイルの終端 (EOF) に達した場合に true
を返す。パイプやソケットの場合には、データを受信するか close
されるまでブロックする。読み込みようにオープンされていない場合には IOError
が発生する。
参考:
IO#eof | Ruby リファレンスマニュアル [公式]
flush
参考:
IO#flush | Ruby リファレンスマニュアル [公式]
close_write
参考:
IO#close_write | Ruby リファレンスマニュアル [公式]
close
参考:
IO#close | Ruby リファレンスマニュアル [公式]
pipe from child’s stdout not closing / how to detect empty pipe? – Stack Overflow
closed?
IO
が読み書き共に完全にクローズされている場合に true
を返す。
参考:
IO#closed? | Ruby リファレンスマニュアル [公式]
sync
参考:
IO#sync | Ruby リファレンスマニュアル [公式]
fileno
ファイルデスクリプタを表す整数
参考:
IO#fileno | Ruby リファレンスマニュアル [公式]
IO.select
入力/出力/例外待ちの IO
オブジェクトの中から準備できたものをそれぞれ配列にして、配列の配列として返す。タイムアウトした場合は nil
を返す。
参考:
IO.select | Ruby リファレンスマニュアル [公式]
IO.select の使い方
参考:
Open3 で標準出力と標準エラー出力からの出力を全て読む | 数と符号と計算機と日記
IO.select を使って、TCP socket で返信がなくなったら自動でコネクションを切る方法 | 脳汁 portal
Man page of SELECT | JM Project
IO#select returns IO objects despite EOF — is this expected? – Stack Overflow
Understanding IO.select when reading socket – Stack Overflow
IO.select におけるタイムアウト
参考:
IO.select timeout problem – Ruby Forum
IO.select で Open3.popen3 を処理する
参考:
外部コマンド実行時の標準出力/標準エラーを随時受け取る | There’s an echo in my head
コード:
ノンブロッキング IO
参考:
TCPServer#accept_nonblock の実装を少し追った | kitak’s blog
Nonblocking IO read | Ruby Forum
IOError
参考:
class IOError | Ruby リファレンスマニュアル [公式]
EOFError
参考:
class EOFError | Ruby リファレンスマニュアル [公式]
What is an EOFError in file I/O? – Stack Overflow