ショボ短歌会

flock関数を使い、
$lockfile="./lock/lock.loc";

sub lock {

foreach $i (1..6) {

.
.
.

if(open(LOCK,">$lockfile")){
if (flock(LOCK,6)) {
$lock_flag = 1;
last ;
}
}

.
.
.

}
}
という風にし、メインルーチンで&lockを実行し、ファイルロックしたのですが、flock(LOCK, 8)を使い忘れ、あとでFFFTPを使ってこれを消そうとしても、なにやらディレクトリが永遠に続いている感じになってしまい消せません。
/lock/lock.loc/lock.loc/lock.loc/lock.loc/lock.loc/...
という風になっています。

それと元からlock/lock.locというディレクトリが存在したままflockを使ってしまったかどうかはちょっと確認していなかったのですが、使う前にあったとしたらlock.locはファイルではなく、ディレクトリです。
(mrdirを使ったロックなどをいろいろ試していたためです。)

うまく説明できなかったのですが、どうすればこれは消せますか?後でflock(LOCK, 8)をやっても直りません・・

アップしたサーバーは@niftyです

A 回答 (1件)

lock.locが親フォルダを参照するシンボリック・リンクになっていて、FFTPでそれを無限に下っているのでは。


高機能なFFTPでなく、Windows標準のftp.exeを使ってみるとか。

どうしても消せないなら、@niftyの管理者に削除を依頼するのが確実でしょう。
    • good
    • 0
この回答へのお礼

あ、たぶんそうかもしれないです・・・
でもなんだかよくわからないのですが、同じ名前のlock.locというファイルをアップしたら消えてくれました。ありがとうございますた。

お礼日時:2003/12/19 11:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!