2000-07-02から1日間の記事一覧

読み取るバイト数を指定する

IO#read([length]) でバイト数を指定できる f = open('test.txt') p f.read(3) # 3バイト読む p f.read(1) f.close

出力をフラッシュする

IO#flush IO#fsync flushはアプリレベルで,fsyncはOSレベル?使わなそう.c/c++でなら,実行時間が長いアプリで途中結果を横から覗き込みたい.ハングしても途中結果は吐き出させたいというときに使うけど.

一時ファイルを使ってファイルを更新する

srcname = 'old.txt' tmpname = 'old.tmp' bakname = 'old.bak' dst = open( tmpname, 'w') # テンポラリ src = open( srcname) src.each {|x| # ここでxを加工する dst.puts x.downcase } src.close() dst.close() File.rename( srcname, bakname) # すでに…

フィルタを書く

$stdin.each {|l| puts l.chomp.downcase } 標準入力から受け取って小文字にして出力する.

一時ファイルを作成する

require 'tempfile' temp = Tempfile::new("foobar", "/home/tmp")未調査

標準エラー出力の先を変更

ferr = open("error.log", "a") # 追記モードで開く $stderr = ferr # 標準エラー出力を変更 $stderr.puts 'an error occurred!!!' # エラーの吐き出し $stderr = STDERR # 元に戻す ferr.close # 閉じる 直接 $stderrに代入して,閉じるのもrubyに任せる? …

備忘録目次 - ロバの耳