2011-06-24 15 views
0

私のコードは、ファイルを作成し、それに書き込んだ後、ファイルオブジェクトを読み取り専用モードに変更する必要があります。Rubyのファイルリソースオブジェクトでモードを読み書きから読み取り専用に変更するにはどうすればよいですか?

私は今何、kindofが醜いようだ:私は「WB」モードでファイルを開き、そこに書き込み、それはモード「RB」で再オープン、その後、それを閉じます。

open(@cached_file_name, 'wb') { |file| file.write("foo") }  
@cached_file = open(@cached_file_name, 'rb') 

がそれですそれを開いたり閉じたりせずにファイルを "wb"から "rb"に変更することは可能ですか? Like:

このようなmode=の方法はわかりません。

答えて

0

いいえ、私はそれを行う方法を知らないし、私はそれができないLinuxのopenシステムコールに由来すると思います。

RubyDocIO.newための状態は:

元IOモードが読み取り専用である場合、モードは、書き込み可能に変更することはできません。同様に、モードを書き込みのみから読み取り可能に変更することはできません。このような誤った変更が指示された場合、実際にエラーが発生するタイミングはプラットフォームによって異なります。

しかし、私は

...それはあなたがまたは読み取り/書き込みモードのためにできること、できないことどのような明示的状態をしませんので注意してください
関連する問題