kind=defined
names=read
visibility=public

--- read(path, length = nil, offset = 0)     -> String | nil

path で指定されたファイルを offset 位置から
length バイト分読み込んで返します。

既に EOF に達している場合は nil を返します。ただし、length に nil か 0 が指定されている場合は、空文字列 "" を返します。例えば、IO.read(空ファイル) は "" を返します。


[[m:Kernel.#open]] と同様 path の先頭が "|" ならば、"|" に続くコマンドの出力を読み取ります。

@param path ファイル名を表す文字列か "|コマンド名" を指定します。

@param length 読み込む長さを整数で指定します。nil であるか省略した場合には、EOF まで読み込みます。

@param offset 読み込みを始めるオフセットを整数で指定します。


@raise Errno::EXXX path のオープン、offset 位置への設定、ファイルの読み込みに失敗した場合に発生します。

@raise ArgumentError length が負の場合に発生します。


例:

  IO.read(empty_file)             #=> ""
  IO.read(empty_file, 1)          #=> nil
  IO.read(one_byte_file, 0, 10)   #=> ""
  IO.read(one_byte_file, nil, 10) #=> "" 
  IO.read(one_byte_file, 1, 10)   #=> nil


