in article 3990052news.pl@insigna.ie.u-ryukyu.ac.jp, Shinji KONO at
kono@ie.u-ryukyu.ac.jp wrote on 04.7.28 08:06 PM:
> 本当に権限がなければ上書きできないので、そういうことなんじゃないかと。
> owner が root だったとかさ。

ownerは実行者(私)ですので、権限はあります。


in article 86wu0onx19.fsf@poe.mob.or.jp, IKEDA Kenji at noroi-fj@mob.or.jp
wrote on 04.7.28 09:20 PM:

> 単に vi と nvi(などの viクローン)の仕様の差でしょう。
> nvi/common/exf.c の file_write() の当該部分には、
> 
> /*
> * If the user owns the file but does not
> * have write permission on it, grant it
> * automatically for the duration of the
> * opening of the file, if possible.
> */
> 
> などというコメントがあり、chmod して write して chmod し戻してます。
> オリジナルはそんなことしてくれないからエラーになる。

「そんなことしてくれない」のであれば、「w」コマンドと「w!」コマンドの違いって
何なのでしょう?

in article ce8ec1$8gv$1@caraway.media.kyoto-u.ac.jp, SAITOH Akinori at
saitoh@kankyo-u.ac.jp.nospam wrote on 04.7.28 11:48 PM:

> viewで起動したときなどviをreadonlyモードで動かしているときには、
> うっかり、ZZなどでファイルを書き換えないように、書き込みコマンドを
> 受け付けないようになっています。

「ZZ」「w」「wq」など、普段書き込みに使用するコマンドで書き込めないのは当然で
すが、そのために「w!」があるんじゃないんでしょうか?
 
> :w!
> は、書き込みを行いますが、実際に成功するかどうかはOS側の問題です。

Solarisのviのmanページでは、

:w!CR forced write, if permission originally not valid

とあります。普通に読めば、これはreadonlyであっても強制的に書き込む、と考えら
れますから、内部でchmodするしかないと思うんですけど。
ちなみに、rootであれば、w!は問題なく強制書き込みできます。

ーー
川部