IO

参考:

class IO (Ruby 2.6.0)

概要

参考:

IOクラスについて学ぶ – Qiita

入出力 | 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 で再確認した | えいのうにっき

IO#pipe は書き込み続けると止まる – Qiita

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:データがない場合には例外を発生させる

参考:

ruby でノンブロッキングな read – Qiita

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 の使い方

参考:

IO::select を使う | Geek なぺーじ

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

Ruby example of using Open3.popen3 with a select loop to read a child process’s standard output and standard error streams. – GitHub Gist

ノンブロッキング IO

参考:

Working with TCP Sockets 読書メモ 第7章 ノンブロッキング IO | Strings of Life

TCPServer#accept_nonblock の実装を少し追った | kitak’s blog

Nonblocking IO read | Ruby-Forum

IOError

参考:

class IOError (Ruby 2.6.0)

EOFError

参考:

class EOFError (Ruby 2.6.0)

What is an EOFError in Ruby file I/O? – Stack Overflow

タグ:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です