Google

- - - 目次

IO

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

スーパークラス:

Object

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

Enumerable

クラスメソッド:

foreach(path[, rs])

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

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

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

new(fd[,mode])

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

popen(command [, mode])

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

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

pipe

pipe(2)を実行して,相互につながった2つの IOオブジェクトを要素とす る配列を返します.最初の要素が読み込み側で,次の要素が書き込 み側です.

readlines(path[, rs])

pathで指定されたファイルを全て読み込んで,その各 行を要素としてもつ配列を返します.ちょうど以下のような働きを します.

port = open(path)
begin
  port.readlines
ensure
  port.close
end

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

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?

ストリームがファイルの終端に達した場合真を返します.

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のデフォルト値はシステム変数 $/の値 です.

getsは読み込んだ文字列を変数$_にセッ トします.

ioctl(cmd[, arg])

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

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

isatty
tty?

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

lineno

現在の行番号を返します.

lineno= number

行番号をセットします.

pos

ファイルポインタの位置を返します.

pos= pos

ファイルポインタを指定位置に移動します.

print arg...

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

printf(format, arg...)

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

putc(ch)

文字chを出力します.

puts(obj...)

objを出力した後,改行します.

read [length]

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

EOFnilを返します.

readchar

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

readline([rs])

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

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

readlinegets同様読み込んだ文字列 を変数$_にセットします.

readlines([rs])

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

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

reopen(io)

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

rewind

ファイルポインタを先頭に移動します.

seek(offset, whence)

ファイルポインタをoffsetだけ移動させます. whenceの値が0の時にはファイルの先頭から,1の時には現在の ファイルポインタから,2の時にはEOFからoffsetバイトだ け移動します.

stat

ファイルのステータスを含むStat 構造体を返します.Stat構造体 のメンバは以下の通りです.

dev	 	# デバイス番号(ファイルシステム)
ino		# i-node番号
mode		# ファイルモード
nlink		# ハードリンクの数
uid		# オーナーのユーザID
gid		# オーナーのグループID
rdev		# デバイスタイプ(スペシャルファイルのみ)
size		# ファイルサイズ(バイト単位)
blksize		# 望ましいI/Oのブロックサイズ
blocks		# 割り当てられているブロック数
atime		# 最終アクセス時間
mtime		# 最終更新時間
ctime		# 最終i-node変更時間

より詳細はstat(2)してください.システムによって サポートされていないメンバには0が入っています.

sync

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

sync= newstate

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

sysread(length)

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

syswrite(string)

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

tell

ファイルポインタの現在の位置を返します.

write(str)

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

ungetc(char)

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


- - - 目次

matz@netlab.co.jp