1

R 2.13で、file.copyは、コピーの出力のアクセス許可に影響を与える新しいcopy.mode引数を導入しました。その結果、n<13であるR2.nで動作するプログラムは動作しなくなる可能性があります。Solarisでこれを発見しました。

dl.txtに444のアクセス許可があり、ユーザーのumaskが002の場合、

file.copy("dl.txt", "k.txt") 

664の権限を持つk.txtを作成するために使用されます。現在は444です。問題が発生した場合に備えて、すべてのプログラムのすべてのコピーステートメントにcopy.mode = FALSEを追加することで、この動作をオーバーライドできます。ただし、これを実行し、古いバージョンのRを使用している場合は、致命的なランタイムエラーが発生します。

新しいバージョンのRでデフォルトの動作をグローバルに変更する方法はありますか?または、下位互換性を維持するための他の方法はありますか?

4

1 に答える 1

0

一部のグローバル領域でオーバーライドします。例.Rprofile::

if( getRversion() > 2.13 ) {
  file.copy <- function(...) { base::file.copy(..., copy.mode=FALSE) }
}
于 2013-03-19T19:46:27.393 に答える