ruby-listの皆さん、こんにちは。立川察理と申します。
基本的なことで恐縮なのですが、質問させてください。
# ネットでうまく検索できないので。
質問は、ロックしたファイルを最初から全て書換えるにはどうすればよいのか、というものです。

  File.open($DataFile,File::RDWR) do |file|
    file.flock(File::LOCK_EX)  # ファイルをロックする
    ロックしたファイルを読み込んでいじる。
    
    file.seek(IO::SEEK_SET)  # ファイルポインタを先頭に移動する
    file.printf("%s\n","新たに書き込みたい文字列")
    file.flock(File::LOCK_UN)  # ロックの開放
  end

以上のようにしたところ、ファイルの先頭から"新たに書き込みたい文字列"が書き込まれて
いますが、それより下流には以前の内容が残ってしまいます。
一度ファイルの内容を消してから書き込めばよいと思うのですが、ロックしているもので
File.deleteなどで一挙に削除できません。

せっかくの休日なのにこの問題に何時間も費してしまっています。知恵をお貸しください。