what-where makes new directory

Shuhei KOBAYASHI shuhei @ aqua.ocn.ne.jp
2001年 7月 3日 (火) 20:26:30 JST


>>>>> In <m3g0ce2386.wl @ wildboy.dq.isl.ntt.co.jp>,
>>>>> teranisi @ gohome.org (Yuuichi Teranishi/寺西裕一) wrote:
> > `copy-file' した後で `set-file-modes' するのは気持ち悪くありませんか?
> 何が問題かよくわかってませんが、

私も elisp の install で実用上どれだけ問題になるのかわかっていませんが,
例えば, 0400 という mode で install しようとする時に一瞬でも 0644 という
mode でファイルが存在するのは嫌じゃないですか?


> すみません、apel-shubit でもう少し実験してみたら、
> 
> (install-file "foo" "/from" "/to")
> 
> のようなコピーのときに /to/foo に install-overwritten-file-modes が
> 反映されないみたいです。
> 
> (install-file "foo" "/from" "/to" t)
> 
> は大丈夫でした。

ええと, 第 4 引数は MOVE ですね. MOVE が nil の場合, つまり, copy-file
を使用した場合が駄目なのか... すみません, copy-file が file mode を copy
していることを見落していました. docstring で言及されていないからといって
src/fileio.c まで確認しなかったのが敗因です. set-default-file-modes をあ
らかじめ実行しても無駄なわけですね.


そういうことならば最初に書いた問題はどうしたらいいでしょうか?
race condition の存在を明記して仕様としてしまうのが一番簡単だと思うので
すが, それで構わないでしょうか? (実際, elisp の install で問題になるの?)

;; む, rename-file を使っているのもまずい気がしてきた.
;; copy-file/delete-file に戻そうかな.
-- 
Shuhei KOBAYASHI




More information about the APEL-ja mailing list