Cygwin なんでも掲示板

一覧最新記事過去一覧 | 検索FAQアンテナHOME
(新規投稿・発言はできません)


スレッド

└◇869:
link/unlink について [shige] 12/26 10:18

 └◇870:Re:link/unlink について [shige] 12/26 <


869● link/unlink について[ shige ] 2002 12/26 10:18
qkc のようなファイルを変換するアプリケーションを書いています。

ファイルを一時ファイルに書き出して、オリジナルと一時ファイルを link/unlink で挿げ替えようとしているのですが、Cygwin では動きません。link に失敗するようです。(-1 を返します。strerror() で理由を表示することができませんでした。)unlink(src) でオリジナルを消すところまでは成功します。

!unlink(src) && !link(dst,src) && !unlink(dst);

としています。
# && で連結しているのは if の入れ子にしたくないからです。

ちなみに solaris では動くのですが、なにを間違えているのでしょうか。アドバイスをお願いいたします。
スレッド一覧


870● Re:link/unlink について[ shige ] 2002 12/26 11:03
原因がわかりました。

Windows のファイルシステムでは、誰かがファイルを開いているときには、ファイルがロック状態になるようで、unlink はできても、link はできないみたいです。rename でもだめでした。

やりたいことは、単に rename だと気づいたので、開いているファイルを閉じてから、rename して期待の動作になりました。

お騒がせしました。

こういう操作について、Windows ファイルシステムについてまったく無知なため、お前のやり方は危ない!などありましたら、アドバイスいただければ幸いです。
スレッド一覧

早田のホームページへ
CGIROOM