別のキーワード
種類
- インスタンスメソッド (43)
- 特異メソッド (22)
ライブラリ
- ビルトイン (53)
-
io
/ console (4) -
io
/ nonblock (3) -
io
/ wait (5)
キーワード
- << (1)
- autoclose= (1)
- autoclose? (1)
- binmode (1)
- binmode? (1)
- binread (1)
- binwrite (1)
- bytes (2)
-
close
_ on _ exec= (1) -
close
_ on _ exec? (1) - closed? (1)
- cooked (1)
-
each
_ byte (2) - echo? (1)
- eof (1)
- eof? (1)
-
for
_ fd (1) - getbyte (1)
- isatty (1)
- lineno= (1)
- new (1)
- noecho (1)
- nonblock (1)
- nonblock= (1)
- nonblock? (1)
- open (2)
- pipe (8)
- popen (7)
- putc (1)
- puts (1)
- raw (1)
- read (1)
-
read
_ nonblock (1) - readbyte (1)
- readpartial (1)
- ready? (1)
-
set
_ encoding (3) - sync (1)
- sysread (1)
-
try
_ convert (1) - tty? (1)
- ungetbyte (1)
- wait (1)
-
wait
_ readable (1) -
wait
_ writable (2) -
write
_ nonblock (1)
検索結果
先頭5件
-
IO
# write _ nonblock(string , exception: true) -> Integer | :wait _ writable (18604.0) -
IO をノンブロッキングモードに設定し、string を write(2) システムコールで書き出します。
...
IO をノンブロッキングモードに設定し、string を write(2) システムコールで書き出します。
write(2) が成功した場合、書き込んだ長さを返します。
EAGAIN, EINTR などは例外 Errno::EXXX として呼出元に報告されます。
書き込んだバ......ブジェクトに IO::WaitWritable が Object#extend
されます。よって IO::WaitWritable を write_nonblock のリトライが必要
かの判定に用いることができます。
@param string 自身に書き込みたい文字列を指定します。
@param exception false を指定す......と、書き込み時に Errno::EAGAIN、Errno::EWOULDBLOCK が発生
する代わりに :wait_writable を返します。
@raise IOError 自身が書き込み用にオープンされていなければ発生します。
@raise Errno::EXXX write(2) が失敗した場合に発生し... -
IO
# ungetbyte(c) -> nil (18340.0) -
指定したバイト列を書き戻します。
...ます。
2バイト以上の書き戻しは仕様として保証しません。
このメソッドはバッファを経由しない読み出し(IO#sysread など)
には影響しません。
@param c バイト列(文字列)、もしくは0から255までの整数
例:
f = File.new("testfile... -
IO
# binmode -> self (18304.0) -
ストリームをバイナリモードにします。MSDOS などバイナリモードの存在 する OS でのみ有効です。そうでない場合このメソッドは何もしません。
...ンしかありません。
@raise Errno::EXXX モードの変更に失敗した場合に発生します。
//emlist[例][ruby]{
IO.open(IO.sysopen("testfile", "w+")) do |io|
io.binmode? # => false
io.binmode # => #<IO:fd 8>
io.binmode? # => true
end
//}
@see c:IO#io_binmode, IO#binmode?... -
IO
# binmode? -> bool (18304.0) -
自身がバイナリモードなら true を返します。そうでない場合、false を返します。
...自身がバイナリモードなら true を返します。そうでない場合、false を返します。
@see c:IO#io_binmode, IO#binmode... -
IO
# bytes -> Enumerator (18304.0) -
このメソッドは obsolete です。 代わりに IO#each_byte を使用してください。 使用すると警告メッセージが表示されます。
...このメソッドは obsolete です。
代わりに IO#each_byte を使用してください。
使用すると警告メッセージが表示されます。
IO の現在位置から 1 バイトずつ読み込み、それを整数として与え、ブロックを実行します。
ブロック......が与えられなかった場合は、自身から生成した
Enumerator オブジェクトを返します。
バイナリ読み込みメソッドとして動作します。
@raise IOError 自身が読み込み用にオープンされていなければ発生します。
@see IO#each_byte... -
IO
# bytes {|ch| . . . } -> self (18304.0) -
このメソッドは obsolete です。 代わりに IO#each_byte を使用してください。 使用すると警告メッセージが表示されます。
...このメソッドは obsolete です。
代わりに IO#each_byte を使用してください。
使用すると警告メッセージが表示されます。
IO の現在位置から 1 バイトずつ読み込み、それを整数として与え、ブロックを実行します。
ブロック......が与えられなかった場合は、自身から生成した
Enumerator オブジェクトを返します。
バイナリ読み込みメソッドとして動作します。
@raise IOError 自身が読み込み用にオープンされていなければ発生します。
@see IO#each_byte... -
IO
# each _ byte -> Enumerator (18304.0) -
IO の現在位置から 1 バイトずつ読み込み、それを整数として与え、ブロックを実行します。
...
IO の現在位置から 1 バイトずつ読み込み、それを整数として与え、ブロックを実行します。
ブロックが与えられなかった場合は、自身から生成した
Enumerator オブジェクトを返します。
バイナリ読み込みメソッドとして動......作します。
@raise IOError 自身が読み込み用にオープンされていなければ発生します。
//emlist[例][ruby]{
IO.write("testfile", "aあ")
File.open("testfile") do |io|
io.each_byte { |x| p x }
# => 97
# 227
# 129
# 130
end
//}... -
IO
# each _ byte {|ch| . . . } -> self (18304.0) -
IO の現在位置から 1 バイトずつ読み込み、それを整数として与え、ブロックを実行します。
...
IO の現在位置から 1 バイトずつ読み込み、それを整数として与え、ブロックを実行します。
ブロックが与えられなかった場合は、自身から生成した
Enumerator オブジェクトを返します。
バイナリ読み込みメソッドとして動......作します。
@raise IOError 自身が読み込み用にオープンされていなければ発生します。
//emlist[例][ruby]{
IO.write("testfile", "aあ")
File.open("testfile") do |io|
io.each_byte { |x| p x }
# => 97
# 227
# 129
# 130
end
//}... -
IO
# getbyte -> Integer | nil (18304.0) -
IO から1バイトを読み込み整数として返します。 既に EOF に達していれば nil を返します。
...
IO から1バイトを読み込み整数として返します。
既に EOF に達していれば nil を返します。
f = File.new("testfile")
f.getbyte #=> 84
f.getbyte #=> 104... -
IO
# nonblock(bool = true) { . . . } -> object (18304.0) -
ブロック実行中、一時的に self のブロックモードを変更します。 bool が真ならノンブロックモード、偽ならブロックモードになります。
ブロック実行中、一時的に self のブロックモードを変更します。
bool が真ならノンブロックモード、偽ならブロックモードになります。
@param bool 真を指定するとノンブロックモード、偽を指定するとブロックモードになります。 -
IO
# nonblock=(bool) (18304.0) -
bool が真なら self をノンブロックモードに、偽ならブロックモー ドにします。
bool が真なら self をノンブロックモードに、偽ならブロックモー
ドにします。
@param bool 真を指定すると自身をノンブロックモードにします。偽を指定するとブロックモードにします。 -
IO
# nonblock? -> bool (18304.0) -
self がノンブロックモードならば true を、 ブロックモードなら false を返します。
self がノンブロックモードならば true を、
ブロックモードなら false を返します。 -
IO
# read _ nonblock(maxlen , outbuf = nil , exception: true) -> String | Symbol | nil (18304.0) -
IO をノンブロッキングモードに設定し、 その後で read(2) システムコールにより 長さ maxlen を上限として読み込み、文字列として返します。 EAGAIN, EINTR などは Errno::EXXX 例外として呼出元に報告されます。
...
IO をノンブロッキングモードに設定し、
その後で read(2) システムコールにより
長さ maxlen を上限として読み込み、文字列として返します。
EAGAIN, EINTR などは Errno::EXXX 例外として呼出元に報告されます。
発生した例外 がErr......no::EAGAIN、 Errno::EWOULDBLOCK である場合は、
その例外オブジェクトに IO::WaitReadable が Object#extend
されます。
なお、バッファが空でない場合は、read_nonblock はバッファから読み込みます。この場合、read(2) システムコールは呼ば......れません。
このメソッドはノンブロッキングモードにする点を除いて IO#readpartial と
同じであることに注意してください。
バイナリ読み込みメソッドとして動作します。
既に EOF に達していれば EOFError が発生します。た... -
IO
# readbyte -> Integer (18304.0) -
IO から1バイトを読み込み整数として返します。 既に EOF に達していれば EOFError が発生します。
...
IO から1バイトを読み込み整数として返します。
既に EOF に達していれば EOFError が発生します。
@raise EOFError 既に EOF に達している場合に発生します。
//emlist[例][ruby]{
IO.write("testfile", "123")
File.open("testfile") do |f|
begin
f.rea... -
IO
# wait _ writable -> self (18304.0) -
self が書き込み可能になるまでブロックし、書き込み可能になったら self を 返します。
...、書き込み可能になったら self を
返します。
timeout を指定した場合は、指定秒数経過するまでブロックし、タイムアウト
した場合は nil を返します。
@param timeout タイムアウトまでの秒数を指定します。
@see IO#wait_readable... -
IO
# wait _ writable(timeout) -> self | nil (18304.0) -
self が書き込み可能になるまでブロックし、書き込み可能になったら self を 返します。
...、書き込み可能になったら self を
返します。
timeout を指定した場合は、指定秒数経過するまでブロックし、タイムアウト
した場合は nil を返します。
@param timeout タイムアウトまでの秒数を指定します。
@see IO#wait_readable... -
IO
. binread(path , length = nil , offset = 0) -> String | nil (18304.0) -
path で指定したファイルを open し、offset の所まで seek し、 length バイト読み込みます。
...ist[例][ruby]{
IO.write("testfile", "This is line one\nThis is line two\nThis is line three\nAnd so on...\n")
IO.binread("testfile") # => "This is line one\nThis is line two\nThis is line three\nAnd so on...\n"
IO.binread("testfile", 20) # => "This is line one\nThi"
IO.binread("test......file", 20, 10) # => "ne one\nThis is line "
//}
@see IO.read... -
IO
. binwrite(path , string , offset=nil) -> Integer (18304.0) -
path で指定されるファイルを開き、string を書き込み、 閉じます。
...書き込み、
閉じます。
ファイルを開くときの mode が "rb:ASCII-8BIT" で、バイナリモードが有効
である点以外は IO.write と同じです。
Kernel.#open と同様 path の先頭が "|" ならば、"|" に続くコマンドを実行し、コマンドの出力を......89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52
# binwriteを使用した場合: どの環境でも正しく保存できる。
IO.binwrite('white.binmode.png', png)
puts IO.binread('white.binmode.png', 16).unpack('C*').map {|c| '%02x' % c }.join(' ')
# => 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 4......。
IO.write('white.txtmode.png', png)
puts IO.binread('white.txtmode.png', 16).unpack('C*').map {|c| '%02x' % c }.join(' ')
# => 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 (Linux/Macの場合
# => 89 50 4e 47 0d 0d 0a 1a 0d 0a 00 00 00 0d 49 48 (Windowsの場合
//}
@see c:IO#io_binmode, IO.w... -
IO
# wait _ readable(timeout = nil) -> bool | self | nil (9304.0) -
self が読み込み可能になるまでブロックし、読み込み可能になったら 真値を返します。タイムアウト、もしくはEOFで それ以上読みこめない場合は偽の値を返します。
...timeout を指定した場合は、指定秒数経過するまでブロックし、タ
イムアウトした場合は nil を返します。
self が EOF に達していれば false を返します。
@param timeout タイムアウトまでの秒数を指定します。
@see IO#wait_writable... -
IO
. pipe {|read _ io , write _ io| . . . } -> object (358.0) -
pipe(2) を実行して、相互につながった2つの IO オブジェクトを要素とする配列を返します。
...相互につながった2つの
IO オブジェクトを要素とする配列を返します。
戻り値の配列は最初の要素が読み込み側で、次の要素が書き込み側です。
ブロックが渡された場合は、そのブロックに2つの IO オブジェクトが渡され......ソッドの返り値となります。
ブロック終了時に IO オブジェクトがもし close されていないならば
close します(close されていてるオブジェクトはそのままです)。
得られる2つの IO オブジェクトのエンコーディングを引数で指......コーディングなどを設定するキーワード引数(see IO.new)
@raise Errno::EXXX IO オブジェクトの作成に失敗した場合に発生します。
r, w = IO.pipe
p [r, w] # => [#<IO:0x401b90f8>, #<IO:0x401b7718>]
Thread.new do
w.puts "foo"
w.close
end... -
IO
. pipe(enc _ str , **opts) {|read _ io , write _ io| . . . } -> object (358.0) -
pipe(2) を実行して、相互につながった2つの IO オブジェクトを要素とする配列を返します。
...相互につながった2つの
IO オブジェクトを要素とする配列を返します。
戻り値の配列は最初の要素が読み込み側で、次の要素が書き込み側です。
ブロックが渡された場合は、そのブロックに2つの IO オブジェクトが渡され......ソッドの返り値となります。
ブロック終了時に IO オブジェクトがもし close されていないならば
close します(close されていてるオブジェクトはそのままです)。
得られる2つの IO オブジェクトのエンコーディングを引数で指......コーディングなどを設定するキーワード引数(see IO.new)
@raise Errno::EXXX IO オブジェクトの作成に失敗した場合に発生します。
r, w = IO.pipe
p [r, w] # => [#<IO:0x401b90f8>, #<IO:0x401b7718>]
Thread.new do
w.puts "foo"
w.close
end... -
IO
. pipe(ext _ enc) {|read _ io , write _ io| . . . } -> object (358.0) -
pipe(2) を実行して、相互につながった2つの IO オブジェクトを要素とする配列を返します。
...相互につながった2つの
IO オブジェクトを要素とする配列を返します。
戻り値の配列は最初の要素が読み込み側で、次の要素が書き込み側です。
ブロックが渡された場合は、そのブロックに2つの IO オブジェクトが渡され......ソッドの返り値となります。
ブロック終了時に IO オブジェクトがもし close されていないならば
close します(close されていてるオブジェクトはそのままです)。
得られる2つの IO オブジェクトのエンコーディングを引数で指......コーディングなどを設定するキーワード引数(see IO.new)
@raise Errno::EXXX IO オブジェクトの作成に失敗した場合に発生します。
r, w = IO.pipe
p [r, w] # => [#<IO:0x401b90f8>, #<IO:0x401b7718>]
Thread.new do
w.puts "foo"
w.close
end... -
IO
. pipe(ext _ enc , int _ enc , **opts) {|read _ io , write _ io| . . . } -> object (358.0) -
pipe(2) を実行して、相互につながった2つの IO オブジェクトを要素とする配列を返します。
...相互につながった2つの
IO オブジェクトを要素とする配列を返します。
戻り値の配列は最初の要素が読み込み側で、次の要素が書き込み側です。
ブロックが渡された場合は、そのブロックに2つの IO オブジェクトが渡され......ソッドの返り値となります。
ブロック終了時に IO オブジェクトがもし close されていないならば
close します(close されていてるオブジェクトはそのままです)。
得られる2つの IO オブジェクトのエンコーディングを引数で指......コーディングなどを設定するキーワード引数(see IO.new)
@raise Errno::EXXX IO オブジェクトの作成に失敗した場合に発生します。
r, w = IO.pipe
p [r, w] # => [#<IO:0x401b90f8>, #<IO:0x401b7718>]
Thread.new do
w.puts "foo"
w.close
end... -
IO
. open(fd , mode = "r" , **opts) {|io| . . . } -> object (340.0) -
オープン済みのファイルディスクリプタ fd に対する新しい IO オブジェクトを生成して返します。
...オープン済みのファイルディスクリプタ fd に対する新しい
IO オブジェクトを生成して返します。
IO.open にブロックが与えられた場合、IO オブジェクトを生成しそれを引数としてブロックを
実行します。ブロックの終了と......ともに fd はクローズされます。ブロックの結果を返します。
IO.new, IO.for_fd はブロックを受け付けません。
=== キーワード引数
このメソッドは以下のキーワード引数を利用できます。
* :mode mode引数と同じ意味です
* :extern......用いられます。
@param fd ファイルディスクリプタである整数を指定します。
@param mode Kernel.#open と同じ形式で IO のモードを指定します。File::Constants::RDONLY などの
定数(数値)でモードを指定できます。詳細は組み込... -
IO
# <<(object) -> self (304.0) -
object を出力します。object が文字列でない時にはメソッ ド to_s を用いて文字列に変換します。
object を出力します。object が文字列でない時にはメソッ
ド to_s を用いて文字列に変換します。
以下のような << の連鎖を使うことができます。
STDOUT << 1 << " is a " << Fixnum << "\n"
@param object 出力したいオブジェクトを与えます。
@raise Errno::EXXX 出力に失敗した場合に発生します。 -
IO
# autoclose=(bool) (304.0) -
auto-close フラグを設定します。
...close しません。
@param bool 真偽値でフラグを設定します
@see IO#autoclose?
f = open("/dev/null")
IO.for_fd(f.fileno)
# ...
f.gets # may cause Errno::EBADF
f = open("/dev/null")
IO.for_fd(f.fileno).autoclose = false
# ...
f.gets # won't cause Errno::EBADF... -
IO
# autoclose? -> bool (304.0) -
auto-close フラグを返します。
...auto-close フラグを返します。
//emlist[例][ruby]{
IO.open(IO.sysopen("testfile")) do |io|
io.autoclose? # => true
io.autoclose = false
io.autoclose? # => false
end
//}
@see IO#autoclose=... -
IO
# close _ on _ exec=(bool) (304.0) -
自身に close-on-exec フラグを設定します。
...2)
@param bool 自身の close-on-exec フラグを true か false で指定します。
f = open("/dev/null")
f.close_on_exec = true
system("cat", "/proc/self/fd/#{f.fileno}") # cat: /proc/self/fd/3: No such file or directory
f.closed? #=> false
@see IO#close_on_exec?... -
IO
# close _ on _ exec? -> bool (304.0) -
自身に close-on-exec フラグが設定されていた場合 true を返します。 そうでない場合に false を返します。
...ます。
そうでない場合に false を返します。
f = open("/dev/null")
f.close_on_exec? #=> true
f.close_on_exec = false
f.close_on_exec? #=> false
f.close_on_exec = true
f.close_on_exec? #=> true
@see IO#close_on_exec=... -
IO
# closed? -> bool (304.0) -
self が完全に(読み込み用と書き込み用の両方が)クローズされている場合に true を返します。 そうでない場合は false を返します。
...t[例][ruby]{
IO.write("testfile", "test")
f = File.new("testfile")
f.close # => nil
f.closed? # => true
f = IO.popen("/bin/sh","r+")
f.close_write # => nil
f.closed? # => false
f.close_read # => nil
f.closed? # => true
//}
@see IO#close, IO#close_read, IO#close_write... -
IO
# cooked {|io| . . . } -> object (304.0) -
cooked モードを有効にして指定されたブロックを評価します。
...す。ブロックを評価した結果を返します。
@raise LocalJumpError ブロックを指定しなかった場合に発生します。
以下の例では、標準入力からエコーバック付きで文字列を一行読み込みます。
require "io/console"
STDIN.cooked(&:gets)... -
IO
# echo? -> bool (304.0) -
文字入力時のエコーバックが有効かどうかを返します。
文字入力時のエコーバックが有効かどうかを返します。 -
IO
# eof -> bool (304.0) -
ストリームがファイルの終端に達した場合、true を返します。そうでない場合、false を返します。
...ックします。
r, w = IO.pipe
Thread.new { sleep 10; w.close }
r.eof? #=> 10秒ブロックしてから true を返す。
r, w = IO.pipe
Thread.new { sleep 10; w.puts "a" }
r.eof? #=> 10秒ブロックしてから false を返す。
r, w = IO.pipe
r.eof? # 永久に......ブロックします。
eof, eof? は入力バッファにデータを読み込むので、IO#sysread と同時に使うと正常に
動作しません。
@raise IOError 自身が読み込み用にオープンされていなければ発生します。... -
IO
# eof? -> bool (304.0) -
ストリームがファイルの終端に達した場合、true を返します。そうでない場合、false を返します。
...ックします。
r, w = IO.pipe
Thread.new { sleep 10; w.close }
r.eof? #=> 10秒ブロックしてから true を返す。
r, w = IO.pipe
Thread.new { sleep 10; w.puts "a" }
r.eof? #=> 10秒ブロックしてから false を返す。
r, w = IO.pipe
r.eof? # 永久に......ブロックします。
eof, eof? は入力バッファにデータを読み込むので、IO#sysread と同時に使うと正常に
動作しません。
@raise IOError 自身が読み込み用にオープンされていなければ発生します。... -
IO
# isatty -> bool (304.0) -
入出力ポートがttyに結合している時、真を返します。そうでない場合 false を返します。
...入出力ポートがttyに結合している時、真を返します。そうでない場合 false を返します。
@raise IOError 既に close されている場合に発生します。
//emlist[例][ruby]{
File.new("testfile").isatty # => false
File.new("/dev/tty").isatty # => true
//}... -
IO
# lineno=(number) (304.0) -
現在の行番号を number にセットします。 $. は次回の読み込みの時に更新されます。
...ber にセットします。 $. は次回の読み込みの時に更新されます。
@param number 行番号を整数で指定します。
@raise IOError 読み込み用にオープンされていなければ発生します。
f = File.new("testfile")
f.gets #=> "This is... -
IO
# noecho {|io| . . . } -> object (304.0) -
文字入力時のエコーバックを無効に設定してブロックを評価します。
...す。ブロックを評価した結果を返します。
以下の例では、標準入力からエコーバックなしで文字列を一行読み込みます。
require "io/console"
STDIN.noecho(&:gets)
@raise LocalJumpError ブロックを指定しなかった場合に発生します。... -
IO
# putc(ch) -> object (304.0) -
文字 ch を self に出力します。 引数の扱いは Kernel.#putc と同じです。詳細はこちらを参照し てください。ch を返します。
...参照し
てください。ch を返します。
@param ch 出力したい文字を、文字列か文字コード(整数)で与えます。
@raise IOError 自身が書き込み用にオープンされていなければ発生します。
@raise Errno::EXXX 出力に失敗した場合に発生し... -
IO
# puts(*obj) -> nil (304.0) -
各 obj を self に出力し、それぞれの後に改行を出力します。 引数の扱いは Kernel.#puts と同じです。詳細はこちらを参照し てください。
...はこちらを参照し
てください。
@param obj 出力したいオブジェクトを指定します。Kernel.#puts と同じです。
@raise IOError 自身が書き込み用にオープンされていなければ発生します。
@raise Errno::EXXX 出力に失敗した場合に発生し... -
IO
# raw(min: 1 , time: 0 , intr: false) {|io| . . . } -> object (304.0) -
raw モード、行編集を無効にして指定されたブロックを評価します。
...シグナルを生成する制御文字が有効になります。端末の制御については、 termios のマニュアル:https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/termios.h.html を参照してください。
@raise LocalJumpError ブロックを指定しなかった場合......に発生します。
@raise ArgumentError intr に true または false 以外の値を指定した場合に発生します。
以下の例では、標準入力からエコーバックなしで文字列を一行読み込みます。
require "io/console"
STDIN.raw(&:gets)... -
IO
# read(length = nil , outbuf = "") -> String | nil (304.0) -
length バイト読み込んで、その文字列を返します。
...の全てのデータを読み込んで、その文字列を返します。
@param outbuf 出力用のバッファを文字列で指定します。IO#read は読み込んだ
データをその文字列オブジェクトに上書きして返します。指定し
た文字......旦 length 長に拡張(ある
いは縮小)されたあと、実際に読み込んだデータのサイズになります。
@raise IOError 自身が読み込み用にオープンされていなければ発生します。
@raise Errno::EXXX データの読み込みに失敗した場......負の場合に発生します。
第二引数を指定した read の呼び出しでデータが空であった場合
(read が nil を返す場合)、outbuf は空文字列になります。
outbuf = "x" * 20;
io = File.open("/dev/null")
p io.read(10,outbuf)
p outbuf
=> nil
""... -
IO
# readpartial(maxlen , outbuf = "") -> String (304.0) -
IO から長さ maxlen を上限として読み込み、文字列として返します。 即座に得られるデータが存在しないときにはブロックしてデータの到着を待ちます。 即座に得られるデータが 1byte でも存在すればブロックしません。
...
IO から長さ maxlen を上限として読み込み、文字列として返します。
即座に得られるデータが存在しないときにはブロックしてデータの到着を待ちます。
即座に得られるデータが 1byte でも存在すればブロックしません。
バ......動作するよう設計されています。
readpartial がブロックするのは次の全ての条件が満たされたときだけです。
* IO オブジェクト内のバッファが空
* ストリームにデータが到着していない
* ストリームが EOF になっていない......EOF になっていれば、例外 EOFError を発生させます。
例えば、パイプに対しては次のように動作します。
r, w = IO.pipe # buffer pipe content
w << "abc" # "" "abc".
r.readpartial(4096)... -
IO
# ready? -> bool | nil (304.0) -
ブロックせずに読み込み可能ならtrueを、 ブロックしてしまう可能性があるならfalseを返します。
ブロックせずに読み込み可能ならtrueを、
ブロックしてしまう可能性があるならfalseを返します。
判定不可能な場合は nil を返します。 -
IO
# sync -> bool (304.0) -
現在の出力が同期モードならば true を返します。そうでない場合は false を返します。
...現在の出力が同期モードならば true を返します。そうでない場合は false を返します。
@raise IOError 既に close されていた場合に発生します。
//emlist[例][ruby]{
File.open("testfile", "w") do |f|
f.sync # => false
f.sync = true
f.sync... -
IO
# sysread(maxlen , outbuf = "") -> String (304.0) -
read(2) を用いて入力を行ない、入力されたデータを 含む文字列を返します。stdio を経由しないので gets や getc や eof? などと混用すると思わぬ動作 をすることがあります。
...read(2) を用いて入力を行ない、入力されたデータを
含む文字列を返します。stdio を経由しないので gets や getc や eof? などと混用すると思わぬ動作
をすることがあります。
バイナリ読み込みメソッドとして動作します。
既......します。
@param maxlen 入力のサイズを整数で指定します。
@param outbuf 出力用のバッファを文字列で指定します。IO#sysread は読み込んだデータを
その文字列オブジェクトに上書きして返します。指定した文字列オブ......小)されたあと、実際に読み込んだデータのサイズになります。
@raise IOError 自身が読み込み用にオープンされていなければ発生します。
@raise EOFError IO が既に EOF に達していれば発生します。
@raise Errno::EXXX データの読み込... -
IO
# tty? -> bool (304.0) -
入出力ポートがttyに結合している時、真を返します。そうでない場合 false を返します。
...入出力ポートがttyに結合している時、真を返します。そうでない場合 false を返します。
@raise IOError 既に close されている場合に発生します。
//emlist[例][ruby]{
File.new("testfile").isatty # => false
File.new("/dev/tty").isatty # => true
//}... -
IO
# wait(timeout = nil) -> bool | self | nil (304.0) -
self が読み込み可能になるまでブロックし、読み込み可能になったら 真値を返します。タイムアウト、もしくはEOFで それ以上読みこめない場合は偽の値を返します。
...timeout を指定した場合は、指定秒数経過するまでブロックし、タ
イムアウトした場合は nil を返します。
self が EOF に達していれば false を返します。
@param timeout タイムアウトまでの秒数を指定します。
@see IO#wait_writable... -
IO
. popen("-" , mode = "r" , opt={}) {|io| . . . } -> object (304.0) -
第一引数に文字列 "-" が指定された時、fork(2) を 行い子プロセスの標準入出力との間にパイプラインを確立します。 親プロセスでは IO オブジェクトを返し、子プロセスでは nil を返します。
...ンを確立します。
親プロセスでは IO オブジェクトを返し、子プロセスでは
nil を返します。
io = IO.popen("-", "r+")
if io # parent
io.puts "foo"
p io.gets # => "child output: foo\n"
io.close
else # child
s = gets
print...... IO オブジェクトを引数に
ブロックを実行し、その結果を返します。ブロックの実行後、生成したパイ
プは自動的にクローズされます。
子プロセスでは nil を引数にブロックを実行し終了します。
p IO.popen("-", "r+") {|io|......if io # parent
io.puts "foo"
io.gets
else # child
s = gets
puts "child output: " + s
end
}
# => "child output: foo\n"
opt ではエンコーディングの設定やプロセス起動のためのオプションが指定できます。
IO.new や Kernel.#spa... -
IO
. popen([env = {} , [cmdname , arg0] , *args , execopt={}] , mode = "r" , opt={}) {|f| . . . } -> object (304.0) -
サブプロセスを実行し、そのプロセスの標準入出力 との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
...出力
との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
p io = IO.popen("cat", "r+") # => #<IO:fd 4>
io.puts "foo"
io.close_write
p io.gets # => "foo\n"
サブプロセスを指定する方法は2......生成した IO オブジェクトを引数にブ
ロックを実行し、ブロックの実行結果を返します。ブロックの実行後、生成したパイ
プは自動的にクローズされます。
p IO.popen("cat", "r+") {|io|
io.puts "foo"
io.close_write
io.gets
}
#......ョンや、パイプ IO オブジェクトの属性(エンコーディングや
読み書き能力)を指定することができます。
プロセス起動のためのオプションは Kernel.#spawn と、
パイプオブジェクトの属性の指定のオプションは IO.new と共通です... -
IO
. popen([env = {} , cmdname , *args , execopt={}] , mode = "r" , opt={}) {|f| . . . } -> object (304.0) -
サブプロセスを実行し、そのプロセスの標準入出力 との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
...出力
との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
p io = IO.popen("cat", "r+") # => #<IO:fd 4>
io.puts "foo"
io.close_write
p io.gets # => "foo\n"
サブプロセスを指定する方法は2......生成した IO オブジェクトを引数にブ
ロックを実行し、ブロックの実行結果を返します。ブロックの実行後、生成したパイ
プは自動的にクローズされます。
p IO.popen("cat", "r+") {|io|
io.puts "foo"
io.close_write
io.gets
}
#......ョンや、パイプ IO オブジェクトの属性(エンコーディングや
読み書き能力)を指定することができます。
プロセス起動のためのオプションは Kernel.#spawn と、
パイプオブジェクトの属性の指定のオプションは IO.new と共通です... -
IO
. popen(env = {} , [[cmdname , arg0] , *args , execopt={}] , mode = "r" , opt={}) {|f| . . . } -> object (304.0) -
サブプロセスを実行し、そのプロセスの標準入出力 との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
...出力
との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
p io = IO.popen("cat", "r+") # => #<IO:fd 4>
io.puts "foo"
io.close_write
p io.gets # => "foo\n"
サブプロセスを指定する方法は2......生成した IO オブジェクトを引数にブ
ロックを実行し、ブロックの実行結果を返します。ブロックの実行後、生成したパイ
プは自動的にクローズされます。
p IO.popen("cat", "r+") {|io|
io.puts "foo"
io.close_write
io.gets
}
#......ョンや、パイプ IO オブジェクトの属性(エンコーディングや
読み書き能力)を指定することができます。
プロセス起動のためのオプションは Kernel.#spawn と、
パイプオブジェクトの属性の指定のオプションは IO.new と共通です... -
IO
. popen(env = {} , [cmdname , *args , execopt={}] , mode = "r" , opt={}) {|f| . . . } -> object (304.0) -
サブプロセスを実行し、そのプロセスの標準入出力 との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
...出力
との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
p io = IO.popen("cat", "r+") # => #<IO:fd 4>
io.puts "foo"
io.close_write
p io.gets # => "foo\n"
サブプロセスを指定する方法は2......生成した IO オブジェクトを引数にブ
ロックを実行し、ブロックの実行結果を返します。ブロックの実行後、生成したパイ
プは自動的にクローズされます。
p IO.popen("cat", "r+") {|io|
io.puts "foo"
io.close_write
io.gets
}
#......ョンや、パイプ IO オブジェクトの属性(エンコーディングや
読み書き能力)を指定することができます。
プロセス起動のためのオプションは Kernel.#spawn と、
パイプオブジェクトの属性の指定のオプションは IO.new と共通です... -
IO
. popen(env = {} , command , mode = "r" , opt={}) {|f| . . . } -> object (304.0) -
サブプロセスを実行し、そのプロセスの標準入出力 との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
...出力
との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
p io = IO.popen("cat", "r+") # => #<IO:fd 4>
io.puts "foo"
io.close_write
p io.gets # => "foo\n"
サブプロセスを指定する方法は2......生成した IO オブジェクトを引数にブ
ロックを実行し、ブロックの実行結果を返します。ブロックの実行後、生成したパイ
プは自動的にクローズされます。
p IO.popen("cat", "r+") {|io|
io.puts "foo"
io.close_write
io.gets
}
#......ョンや、パイプ IO オブジェクトの属性(エンコーディングや
読み書き能力)を指定することができます。
プロセス起動のためのオプションは Kernel.#spawn と、
パイプオブジェクトの属性の指定のオプションは IO.new と共通です... -
IO
. popen(env , "-" , mode = "r" , opt={}) {|io| . . . } -> object (304.0) -
第一引数に文字列 "-" が指定された時、fork(2) を 行い子プロセスの標準入出力との間にパイプラインを確立します。 親プロセスでは IO オブジェクトを返し、子プロセスでは nil を返します。
...ンを確立します。
親プロセスでは IO オブジェクトを返し、子プロセスでは
nil を返します。
io = IO.popen("-", "r+")
if io # parent
io.puts "foo"
p io.gets # => "child output: foo\n"
io.close
else # child
s = gets
print...... IO オブジェクトを引数に
ブロックを実行し、その結果を返します。ブロックの実行後、生成したパイ
プは自動的にクローズされます。
子プロセスでは nil を引数にブロックを実行し終了します。
p IO.popen("-", "r+") {|io|......if io # parent
io.puts "foo"
io.gets
else # child
s = gets
puts "child output: " + s
end
}
# => "child output: foo\n"
opt ではエンコーディングの設定やプロセス起動のためのオプションが指定できます。
IO.new や Kernel.#spa... -
IO
. try _ convert(obj) -> IO | nil (304.0) -
obj を to_io メソッドによって IO オブジェクトに変換します。 変換できなかった場合は nil を返します。
...obj を to_io メソッドによって IO オブジェクトに変換します。
変換できなかった場合は nil を返します。
IO.try_convert(STDOUT) # => STDOUT
IO.try_convert("STDOUT") # => nil... -
IO
# set _ encoding(enc _ str , **opts) -> self (76.0) -
IO のエンコーディングを設定します。
...
IO のエンコーディングを設定します。
引数が "A:B" のようにコロンで区切られた文字列の場合は、
A を外部エンコーディング、 B を内部エンコーディングに指定します。
引数が一つで、上のような形式でない場合には、......oding オブジェクトを指定します。
@param int_enc 内部エンコーディングを表す文字列か Encoding オブジェクトを指定します。
@param opts エンコーディング変換のオプション
例:
io = File.open(file)
io.set_encoding("ASCII-8BIT", "EUC-JP")... -
IO
# set _ encoding(ext _ enc) -> self (76.0) -
IO のエンコーディングを設定します。
...
IO のエンコーディングを設定します。
引数が "A:B" のようにコロンで区切られた文字列の場合は、
A を外部エンコーディング、 B を内部エンコーディングに指定します。
引数が一つで、上のような形式でない場合には、......oding オブジェクトを指定します。
@param int_enc 内部エンコーディングを表す文字列か Encoding オブジェクトを指定します。
@param opts エンコーディング変換のオプション
例:
io = File.open(file)
io.set_encoding("ASCII-8BIT", "EUC-JP")... -
IO
# set _ encoding(ext _ enc , int _ enc , **opts) -> self (76.0) -
IO のエンコーディングを設定します。
...
IO のエンコーディングを設定します。
引数が "A:B" のようにコロンで区切られた文字列の場合は、
A を外部エンコーディング、 B を内部エンコーディングに指定します。
引数が一つで、上のような形式でない場合には、......oding オブジェクトを指定します。
@param int_enc 内部エンコーディングを表す文字列か Encoding オブジェクトを指定します。
@param opts エンコーディング変換のオプション
例:
io = File.open(file)
io.set_encoding("ASCII-8BIT", "EUC-JP")... -
IO
. pipe -> [IO] (58.0) -
pipe(2) を実行して、相互につながった2つの IO オブジェクトを要素とする配列を返します。
...相互につながった2つの
IO オブジェクトを要素とする配列を返します。
戻り値の配列は最初の要素が読み込み側で、次の要素が書き込み側です。
ブロックが渡された場合は、そのブロックに2つの IO オブジェクトが渡され......ソッドの返り値となります。
ブロック終了時に IO オブジェクトがもし close されていないならば
close します(close されていてるオブジェクトはそのままです)。
得られる2つの IO オブジェクトのエンコーディングを引数で指......コーディングなどを設定するキーワード引数(see IO.new)
@raise Errno::EXXX IO オブジェクトの作成に失敗した場合に発生します。
r, w = IO.pipe
p [r, w] # => [#<IO:0x401b90f8>, #<IO:0x401b7718>]
Thread.new do
w.puts "foo"
w.close
end... -
IO
. pipe(enc _ str , **opts) -> [IO] (58.0) -
pipe(2) を実行して、相互につながった2つの IO オブジェクトを要素とする配列を返します。
...相互につながった2つの
IO オブジェクトを要素とする配列を返します。
戻り値の配列は最初の要素が読み込み側で、次の要素が書き込み側です。
ブロックが渡された場合は、そのブロックに2つの IO オブジェクトが渡され......ソッドの返り値となります。
ブロック終了時に IO オブジェクトがもし close されていないならば
close します(close されていてるオブジェクトはそのままです)。
得られる2つの IO オブジェクトのエンコーディングを引数で指......コーディングなどを設定するキーワード引数(see IO.new)
@raise Errno::EXXX IO オブジェクトの作成に失敗した場合に発生します。
r, w = IO.pipe
p [r, w] # => [#<IO:0x401b90f8>, #<IO:0x401b7718>]
Thread.new do
w.puts "foo"
w.close
end... -
IO
. pipe(ext _ enc) -> [IO] (58.0) -
pipe(2) を実行して、相互につながった2つの IO オブジェクトを要素とする配列を返します。
...相互につながった2つの
IO オブジェクトを要素とする配列を返します。
戻り値の配列は最初の要素が読み込み側で、次の要素が書き込み側です。
ブロックが渡された場合は、そのブロックに2つの IO オブジェクトが渡され......ソッドの返り値となります。
ブロック終了時に IO オブジェクトがもし close されていないならば
close します(close されていてるオブジェクトはそのままです)。
得られる2つの IO オブジェクトのエンコーディングを引数で指......コーディングなどを設定するキーワード引数(see IO.new)
@raise Errno::EXXX IO オブジェクトの作成に失敗した場合に発生します。
r, w = IO.pipe
p [r, w] # => [#<IO:0x401b90f8>, #<IO:0x401b7718>]
Thread.new do
w.puts "foo"
w.close
end... -
IO
. pipe(ext _ enc , int _ enc , **opts) -> [IO] (58.0) -
pipe(2) を実行して、相互につながった2つの IO オブジェクトを要素とする配列を返します。
...相互につながった2つの
IO オブジェクトを要素とする配列を返します。
戻り値の配列は最初の要素が読み込み側で、次の要素が書き込み側です。
ブロックが渡された場合は、そのブロックに2つの IO オブジェクトが渡され......ソッドの返り値となります。
ブロック終了時に IO オブジェクトがもし close されていないならば
close します(close されていてるオブジェクトはそのままです)。
得られる2つの IO オブジェクトのエンコーディングを引数で指......コーディングなどを設定するキーワード引数(see IO.new)
@raise Errno::EXXX IO オブジェクトの作成に失敗した場合に発生します。
r, w = IO.pipe
p [r, w] # => [#<IO:0x401b90f8>, #<IO:0x401b7718>]
Thread.new do
w.puts "foo"
w.close
end... -
IO
. for _ fd(fd , mode = "r" , **opts) -> IO (40.0) -
オープン済みのファイルディスクリプタ fd に対する新しい IO オブジェクトを生成して返します。
...オープン済みのファイルディスクリプタ fd に対する新しい
IO オブジェクトを生成して返します。
IO.open にブロックが与えられた場合、IO オブジェクトを生成しそれを引数としてブロックを
実行します。ブロックの終了と......ともに fd はクローズされます。ブロックの結果を返します。
IO.new, IO.for_fd はブロックを受け付けません。
=== キーワード引数
このメソッドは以下のキーワード引数を利用できます。
* :mode mode引数と同じ意味です
* :extern......用いられます。
@param fd ファイルディスクリプタである整数を指定します。
@param mode Kernel.#open と同じ形式で IO のモードを指定します。File::Constants::RDONLY などの
定数(数値)でモードを指定できます。詳細は組み込... -
IO
. new(fd , mode = "r" , **opts) -> IO (40.0) -
オープン済みのファイルディスクリプタ fd に対する新しい IO オブジェクトを生成して返します。
...オープン済みのファイルディスクリプタ fd に対する新しい
IO オブジェクトを生成して返します。
IO.open にブロックが与えられた場合、IO オブジェクトを生成しそれを引数としてブロックを
実行します。ブロックの終了と......ともに fd はクローズされます。ブロックの結果を返します。
IO.new, IO.for_fd はブロックを受け付けません。
=== キーワード引数
このメソッドは以下のキーワード引数を利用できます。
* :mode mode引数と同じ意味です
* :extern......用いられます。
@param fd ファイルディスクリプタである整数を指定します。
@param mode Kernel.#open と同じ形式で IO のモードを指定します。File::Constants::RDONLY などの
定数(数値)でモードを指定できます。詳細は組み込... -
IO
. open(fd , mode = "r" , **opts) -> IO (40.0) -
オープン済みのファイルディスクリプタ fd に対する新しい IO オブジェクトを生成して返します。
...オープン済みのファイルディスクリプタ fd に対する新しい
IO オブジェクトを生成して返します。
IO.open にブロックが与えられた場合、IO オブジェクトを生成しそれを引数としてブロックを
実行します。ブロックの終了と......ともに fd はクローズされます。ブロックの結果を返します。
IO.new, IO.for_fd はブロックを受け付けません。
=== キーワード引数
このメソッドは以下のキーワード引数を利用できます。
* :mode mode引数と同じ意味です
* :extern......用いられます。
@param fd ファイルディスクリプタである整数を指定します。
@param mode Kernel.#open と同じ形式で IO のモードを指定します。File::Constants::RDONLY などの
定数(数値)でモードを指定できます。詳細は組み込...