IO

公式サイト:

class IO | Ruby リファレンスマニュアル [公式]

概要

参考:

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

入出力 | 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 は書き込み続けると止まる – Qiita

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 File | ZetCode

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 まで読み込む
  • readpartial1バイト以上受け取るとリターンする
  • read_nonblockデータがない場合には例外を発生させる

参考:

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

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

<<

参考:

IO#<< | Ruby リファレンスマニュアル [公式]

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

参考:

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

Open3 で標準出力と標準エラー出力からの出力を全て読む | 数と符号と計算機と日記

IO.select を使って、TCP socket で返信がなくなったら自動でコネクションを切る方法 | 脳汁 portal

Man page of SELECT | JM Project

select(2) | Linux Manual Page

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

コード:

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

ノンブロッキング IO

参考:

ノンブロッキング IO | Strings of Life

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

まとめ

ファイルから1行/段落ごと読み込むには? | Build Insider

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。

Protected by reCAPTCHA