[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/10 00:43 / Filesize : 262 KB / Number-of Response : 974
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【Perl】ファイルロック(排他処理)について語ろう



1 名前:nobodyさん [02/06/23 10:18 ID:eY2l+Gw1]
どんな環境でも使えて、軽くて、頑丈なロックを考えようじゃありません

940 名前:nobodyさん [2007/04/16(月) 16:21:56 ID:wXXA2dJL]
このスレも残りわずかですね

1つ疑問いいですか?
flockの有効範囲(?)っていうのがいまいち分からなくて。。
同一サーバ内、バーチャルドメインごと、1スクリプトごと。。。??

flockを使って、このスレにある方法を使い正しいロック方法の時だとします

ここまで読んだものから推測するとサーバ内であれば別のスクリプトから呼び出しても効きますよね?(ファイルハンドルが同じなら)

逆に言えばflockを使っているファイルハンドルを別のスクリプトで使ったら解除してしまうってことですか?
レン鯖みたいな共用鯖でよく使いそうなファイルハンドル(INとかOUTとか)でflockを使うと危険なんですかね?




941 名前:nobodyさん mailto:sage [2007/04/16(月) 16:38:48 ID:???]
言語に備わってるファイルロック関数は信用してはいけない

942 名前:nobodyさん mailto:sage [2007/04/16(月) 18:29:01 ID:???]
>>940
Perlのflockは様々な実装があるので、ここではUnix互換OSのflock(2)が
使われた場合とすると、

・flockはOSの機能なので、機能するのはOSの範囲内。
・正しい書き方をすれば、別のプロセスがロックを外すことは無い。
・別プロセスからのflockの開放は可能らしい。

943 名前:nobodyさん mailto:sage [2007/04/16(月) 18:31:45 ID:???]
ファイル構造体にフラグ立ててるわけだからファイルハンドル・別スクリプト云々は考えなくていいっしょ

944 名前:nobodyさん mailto:sage [2007/04/16(月) 19:58:57 ID:???]
mkdirが使えるなら絶対そっちのほうがいいよ

945 名前:nobodyさん mailto:sage [2007/04/23(月) 18:26:23 ID:???]
>942
遅ればせながらォです


946 名前:nobodyさん mailto:sage [2007/04/23(月) 20:20:20 ID:???]
NFSを介した向こう側のファイルを開く時はflockが効かなかったりする。

947 名前:nobodyさん mailto:sage [2007/04/26(木) 17:01:49 ID:???]
>>946
(OSが管理してるので)同じサーバ内でならflockでいい。
別のサーバからのアクセスもロックしたいなら
lockd動かしてfcntlでロックする。


948 名前:nobodyさん [2007/04/29(日) 20:50:11 ID:QRYQeqJ7]
ファイルロックって、馬鹿ですか?
mutex使えよ、アホ



949 名前:nobodyさん mailto:sage [2007/04/30(月) 00:26:57 ID:???]
>>948
Windowsなんて糞なサーバ使うより1000万倍まし。

950 名前:nobodyさん mailto:sage [2007/04/30(月) 14:00:30 ID:???]
>>946
そういうときは、fcntlを使うようにオプションで指示してコンパイルする。


951 名前:nobodyさん mailto:sage [2007/04/30(月) 14:26:51 ID:???]
ファイルロック関数に頼ったロックに頼るべきではない。
独自に考えるべき

952 名前:nobodyさん mailto:sage [2007/04/30(月) 17:20:06 ID:???]
ここはスレタイにあるとおり、「perl」でという制約の元の排他制御に
関する議論をするスレッドなんだよ。
しかもwebprog板なので、サーバーサイド限定だ。
すなわちWin限定の解は採点が低い。

953 名前:nobodyさん mailto:sage [2007/04/30(月) 18:09:45 ID:???]
次スレは言語選ばないべき。過疎ってるから

954 名前:nobodyさん mailto:sage [2007/04/30(月) 18:34:21 ID:???]
PHPも仲間に入れてやってください

955 名前:nobodyさん mailto:sage [2007/04/30(月) 22:19:01 ID:???]
PHPか。

956 名前:nobodyさん mailto:sage [2007/05/01(火) 08:41:54 ID:???]
Perlで1個作って、それを移植するだけだろw

957 名前:nobodyさん mailto:sage [2007/05/01(火) 11:06:12 ID:???]
>>956
ほとんど同じでOKなの?

958 名前:nobodyさん mailto:sage [2007/05/03(木) 07:37:55 ID:???]
5年前のスレかよw



959 名前:nobodyさん mailto:sage [2007/11/12(月) 23:00:45 ID:???]
半年前のレスかよ

960 名前:nobodyさん [2007/11/25(日) 15:43:12 ID:YhRNGWJK]
ageてみるか

961 名前:nobodyさん mailto:sage [2008/03/14(金) 20:29:09 ID:???]
このスレが無限ロックされてるんじゃね?w

962 名前:nobodyさん mailto:sage [2008/08/08(金) 02:57:43 ID:???]
flockにロックIDとかつけてくんないかなー
部分ロックしたいときに困る

963 名前:nobodyさん [2008/08/08(金) 02:59:41 ID:V81X7ey0]
ていうかファイルに対するlockじゃなくて、完全にIDのみで管理するロック機構があれば応用がきくのに
そういうのって何で作られないの?何かわけがあるの?

964 名前:nobodyさん mailto:sage [2008/08/08(金) 10:06:25 ID:???]
ファイルに対してlockしないでなににlockするんだい?

管理はファイルごとに行うんじゃなくてファイルハンドルごとに行うんじゃないかい?
ま、ルールに則って処理しなければlockはいくらでも無視できるけど

965 名前:nobodyさん mailto:sage [2008/08/08(金) 19:52:28 ID:???]
何言ってんのさ。
mkdirとかを用いた方法だって、あくまで"処理のロック"だろ。
その処理ってのがファイルアクセスだったときにファイルロックになるだけでさ。

わざわざロック専用のファイル作ってそれにflockかける場合のこと考えると、「対象としてのファイルがなければロックできない」ってのはどうにも無駄な制限だと思うんだけど。


って書いたけどIDだけでの管理は共用鯖とかだと現実的じゃないな。

966 名前:nobodyさん mailto:sage [2008/08/08(金) 20:28:34 ID:???]
System V IPCのセマフォ使えばいいんじゃない?
perlなら組み込み関数あるし、CPANにもライブラリあるよ。

967 名前:nobodyさん [2009/09/07(月) 18:18:57 ID:0FwHnD5n]
質問です。
apacheのアクセスログの様にとにかく最後尾に追記するだけの場合、排他処理は必要ですか?

use Fcntl;
sysopen(OUT, $FileName, O_WRONLY|O_CREAT|O_APPEND);
print OUT "aaa\n";
close(OUT);

これだけで済めばいいな〜というのは甘い考えでしょうか?

968 名前:nobodyさん mailto:sage [2009/09/09(水) 17:11:40 ID:???]
追記は確か混じった。




969 名前:nobodyさん [2009/09/09(水) 17:27:59 ID:jdeXznBz]
>>968
レスありがとうございます。
後で編集するので書き込まれる順序は特に気にしませんが
一応flock程度はやっておこうかなと思ってます。

970 名前:nobodyさん [2009/09/13(日) 16:22:21 ID:YylJyw/3]
それは print を使うからでは。
一回のシステムコールで書き込まれるようにすれば?
syswrite を使うか、バッファを無効にする。

971 名前:nobodyさん mailto:sage [2009/10/08(木) 14:28:23 ID:???]
書き込みすんだったら、
ロックは必須でしょう?

972 名前:nobodyさん mailto:sage [2009/10/12(月) 23:17:19 ID:???]
このスレでも何度かいわれたし、
www.bioinfo.jp/tips.html#append に詳しく書いてある。
確認してみれ。

973 名前:nobodyさん mailto:sage [2009/10/19(月) 19:57:43 ID:???]
システムに依存するけど、どの操作もアトミックにできれば、ロックはいらねぇって話だわな。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<262KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef