- - - 目次

IO

IOクラスは基本的な入出力機能を実装します.

スーパークラス:

Objcet

インクルードされているモジュール:

Enumerable

クラスメソッド:

foreach(path)

pathで指定されたファイルの各行に対して繰り返しま す.ちょうど以下のような働きをします.

port = open(path)
begin
  port.each_line {
    ...
  }
ensure
  port.close
end

new(fd[,mode])

整数fdで指定したファイルディスクリプタに対応する ストリームを生成します.

popen(command [, mode])

commandをサブプロセスとして実行し,そのプロセスの 標準入出力との間にパイプラインを確立します.mode はオープンするIOポートのモードを指定するもので, "r", "r+", "w", "w+", "a", "a+"のいず れかで,省略された時のデフォルトは"r"です.

コマンド名が"-"の時,rubyはforkを行い,自分自身 の分身(子プロセス)とのパイプラインを生成します.

select(reads[, writes[, excepts[, timeout]]])

`select(2)'を実行します. reads/writes/execptsには入 力待ちするIO(またはそのサブクラス)の インスタンスの配列をわたします.

timeoutは整数,浮動小数点数, Time, または nil を指定します.nil を指定した時 にはIOがレディ状態になるまで待ち続けます.

戻り値はtimeoutした時にはnilを,そう でないときは3要素の配列を返し,その各要素が入力/出力/例外待 ちのオブジェクトの配列です(指定した配列のサブセット).

メソッド:

self << object

objectを出力します.objectが文字列でな い時にはメソッドto_sを用いて文字列に変換します. selfを戻り値とするので,以下のような <<の連鎖を使うことができます.

$stdout << 1 << " is a " << Fixnum << "\n"

binmode

ストリームをバイナリモードにします.MSDOSなどバイナリモードの 存在するOSでのみ有効です.バイナリモードから通常のモードに戻 す方法は再オープンしかありません.

close

入出力ポートをクローズします.以後のこのポートに対する入出力 操作は例外を発生します.ガーベージコレクトの際にはクローズさ れていないIOポートはクローズされます.

closed?

ポートがクローズされている時に真を返します.

each([rs]) {|line|...}
each_line([rs]) {|line|...}

IOポートから1行ずつ読み込んで繰り返すイテレータ.IOポートは リードモードでオープンされている必要があります (open参照).

行の区切りは引数rsで指定した文字列になります. rsのデフォルト値はシステム変数 $/の値 です.

読み込まれた行は変数 $_ にも格納されます.

each_byte {|ch|...}

IOポートから1バイトずつ読み込みます.IOポートは リードモードでオープンされている必要があります (open参照).

eof
eof?

Returns true it the stream reaches end of file.

fcntl(cmd[, arg])

IOに対してシステムコール fcntl を実行します. 機能の詳細はfcntl(2)を参照してください.

argが整数の時にはその値を,文字列の場合にはpackした構造体だ とみなしてfcntl(2)に渡します.argの 省略時の値は0です.

fileno
to_i

ファイル記述子の番号を返します.

flush

IOポートの内部バッファをフラッシュします.

getc

IOポートから1文字読み込んで,その文字に対応するFixnumを返す. EOFに到達した時にはnilを返します.

gets([rs])

一行読み込んで,読み込みに成功した時にはその文字列を返します. ファイルの終りに到達した時にはnilを返します. eachと同じように動作します が,こちらは1行返すだけで繰り返しません.

行の区切りは引数rsで指定した文字列になります. rsのデフォルト値はシステム変数 $/の値 です.

ioctl(cmd[, arg])

IOに対してシステムコール ioctl を実行します. 機能の詳細はioctl(2)を参照してください.

argが整数の時にはその値を,文字列の場合にはpackした構造体だ とみなしてioctl(2)に渡します.argの 省略時の値は0です.

isatty
tty?

入出力ポートがttyに結合している時,真を返します.

print arg...

引数をIOポートに順に出力します.

printf(format, arg...)

C言語のprintfと同じように, formatに従い引数を文字列に変換して,IOポートに出 力します.

puts obj

objを出力します.

read [length]

lengthバイト読み込んで,その文字列を返します. lengthが省略された時には,EOFまでの 全てのデータを読み込みます.

readchar

getcと同様に1文字読み込みます が,EOFに到達した時に例外EOFErrorを発生させます.

readline([rs])

getsと同様に1行読み込みます が,EOFに到達した時に例外EOFErrorを発生させます.

行の区切りは引数rsで指定した文字列になります. rsのデフォルト値はシステム変数 $/の値 です.

readlines([rs])

ファイルを全て読み込んで,その各行を要素としてもつ配列を返し ます.

行の区切りは引数rsで指定した文字列になります. rsのデフォルト値はシステム変数 $/の値 です.

reopen(io)

自身をioに繋ぎ換えます.クラスもioに等 しくなります(危険).

sync

現在の出力同期モードを真偽値で返します.同期モードが真の時は 出力関数の呼出毎にバッファがフラッシュされます.

sync= newstate

出力同期モードを設定します.

sysread(length)

`read(2)'を用いて入力を行ない,入力されたデータ を含む文字列を返します.ファイルの終りに到達した時には例外 EOFErrorを発生させます.`stdio'を 経由しないのでgetsgetcなど と混用することは思わぬ動作をすることがあります.

syswrite(string)

`read(2)'を用いてstringを出力します. `stdio'を経由しないので他の出力メソッドと混用す ることは思わぬ動作をすることがあります.

write(str)

IOポートに対してstrを出力します.出力されたバイト 数を返します.

ungetc(char)

charを読み戻します.1バイト以上の読み戻しは保証さ れません.


- - - 目次

matz@caelum.co.jp