• ベストアンサー

何の違いですか?

ファイルロックのSymlinkとMkdirの違いはなんですか? 長所、短所がありましたら教えてくださると嬉しいです。

  • wc13
  • お礼率67% (74/110)
  • Perl
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

参考 URL のページが参考になるのではないでしょうか。 リンク先にも書かれていますが、基本的には flock を使った方が いいですよ。 (特に、異常終了の場合)

参考URL:
http://www.rescue.ne.jp/CGI-BBS/cgi/perl/20020423011823.shtml

関連するQ&A

  • ロック??

    データファイルとかは同時書き込みされると破損するみたいですね。 それを防ぐにはとうすりゃいんだ?と思い書籍(十日でおぼえるPerl講座)をみるとFlock関数を使えばいいとありました。 しかし自分が使っているスクリプトのロック関数は MkdirとSymlinkだけです。 これはどうすればいいんでしょうか?

  • rename関数のファイルロック

    カウンタスクリプトを作る際に、必ずファイルロックってしますよね。 いろいろなサンプルを見ると、symlink関数やmkdir関数、open関数などを使ったロック方法があるんですけど その中にrename関数を使ったものがあるんです。 解説を読んでみると、rename関数の方が他のよりも比較的に良いようなことが書いてあるのでさっそく使用。 しかし、表示が遅いんです。 カウンタは画像連結をしてIMGで呼び出しています。 renameでロックすると遅くなるのは、もうどうしようもないことなのでしょうか?

    • ベストアンサー
    • CGI
  • ヘアカラーとブリーチの違い。

    ヘアカラーとブリーチの違いってなんですか? 違いがあるとすれば、それぞれどんな長所と短所があるんですか?

  • ATIとNVIDIAの違い

    これの違いがよく分かりません。教えてください。 どちらのほうが物がいいとか、長所短所なども教えていただけると助かります。

  • 違いを教えてください

    宜しくお願い致します。 早速ですが、真空熱処理と無酸化焼入れとの違い及び両方の長所、短所を教えてください。

  • ヒューズとブレーカーの違い

    ヒューズとブレーカーの違いが知りたいです。 それぞれの長所と短所など比較して教えてもらうと助かります。

  • ブルーレイとDVDの違いを

    ブルーレイとDVDの違いを教えてください 出来れば両方の短所と長所もお願いします

  • iPodシリーズの違いを教えてください

    iPodシリーズの違いを教えてください 具体的に、何が違うのか教えて下さい それぞれの短所、長所も教えて下さい

  • BBSについて

    初心者です。BBSを作ろうと思って、kent-webさんのサイトから画像Up可の掲示板のスクリプトをDLしました。http://www.kent-web.com/bbs/joyful.html しかし以下の点がわかりません。 ・ # ロックファイル名   $lockfile = './lock/joyful.lock'; と書いてあるので、lock/joyful.lockというディレクトリをつくったのですが、書き込んでみると、 LOCK is BUSYとでます。ファイルロック形式がよくわからないときは2にしろとかいてあったので2にしてます。    # ファイルロック形式    # → 0=no 1=symlink関数 2=mkdir関数    $lockkey = 2; あと画像をUpする場所はどうやって確保したらよいのでしょうか? どうかご教授おねがいします。m(_ _)m

    • ベストアンサー
    • Perl
  • ファイルロックについて

    以下のようなプログラムを作り実験しているのですが、よくわからない事態になっています。 まず、ブラウザを2つ用意して、一方のブラウザで実行した後、すぐに2つめのブラウザで実行します。 mkdirの場合、$which=1として、2つ目を実行すると、busyとでます。これは1つ目がロックしているからということは分かります。 しかし、symlinkの場合、2つ目でもbusyという文字はでず、何事もなかったように両方ともOKと表示されます。これは本当にロックできているのでしょうか。また、この場合、lock.cgiが生成されません。 また、サーバーによってはmkdirで試行すると、まだロックしていないにもかかわらず、busyとでるのもあります。これは、mkdir方式が対応していないと考えればよいのでしょうか。 ------------------------ #! /usr/local/bin/perl $lockfile = "./lock.cgi"; $which = 1; filelock(); sleep 10; fileunlock(); error("OK"); sub error{ print <<END; Content-type: text/html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML><HEAD> </head> <body> $_[0] </body></html> END exit; } sub filelock { if (-e $lockfile) { # 3分以上古いロックは削除する ($mtime) = (stat($lockfile))[9]; if ($mtime < time - 60) { fileunlock(); } } local($retry) = 2; if($which){ #mkdir関数式ロック while (!mkdir($lockfile, 0755)) { if (--$retry <= 0) { &error("busy"); } sleep(1); } }else{ # symlink関数式ロック if ($lockkey == 1) { while (!symlink(".", $lockfile)) { if (--$retry <= 0) { &error("busy"); } sleep(1); } } } } sub fileunlock { if($which){rmdir($lockfile);}else{unlink($lockfile); } }

専門家に質問してみよう