Article View: fj.lang.perl
Article #244Re: ファイルの行数とロック
From: Maki Watanabe
Date: Sun, 22 Feb 1998 00:00
Date: Sun, 22 Feb 1998 00:00
51 lines
2579 bytes
2579 bytes
Seiichirou Hiraoka wrote:
> やっぱりwcを使うのが良いですか。
ちゃんと計測しないとわかりません。:-)
が、行数が多くなるほど wc の方が有利になるような
気がします。
> Programming perl(ラクダ本?)のflockの項をみましたが、いまいち分りません。
> 例えば、flock("./dummy",$LOCK_EX);などとすると、./dummyというファイルに
> 排他ロックがかかるのだと思うのですが、どのような効果があるのでしょうか。
-----------------------------------------------------
flock(FILEHANDLE,OPERATION)
FILEHANDLEに対してflock(2)を実行する。OPERATIONについては
flock(2)のマニュアルページを参照の事。
( Programming Perl, Larry Wall and Randal L.Schewartz著, 近藤嘉幸訳 )
-----------------------------------------------------
従って、flockの第一パラメータはファイルハンドルです。
$LOCK_EX = 2;
$LOCK_UN = 8;
open(H,"< lockfile") or die;
flock(H,$LOCK_EX) or die "Could not get the lock.";
# いろいろな処理
flock(H,$LOCK_UN) or die "Could not release the lock";
close(H);
> 例えば、排他ロックをかけたファイルを開こうとしたらエラーになるとか、
> 書き込もうとしたらエラーになるとか、そういう具体的なモノでは無いのでしょうか。
詳しくは man page の flock(2) をお読みいただくとして、
flockはアドバイザリ・ロック機構です。簡単に言うと、ロックを取り合う
プログラムどうしで、ロックがかかっているか確認しながら使うものです。
排他ロックされているファイルハンドル( Cの場合はファイルディスクリプタ )
に対して他のプログラムが flock でロックを取得しようとすると
ロックが取得できるまで待たされます。( ノンブロックマスクを
設定していない場合 )
flockの対象ファイルは変更対象ファイルでもかまいませんし、特定の
ロックファイルでも構いませんが、ロックを使うプログラムの間では
合意があることが必要です。
Read The Manual.
mw
Technical Details
Message-ID:
<34EFF52D.A68E2055@tko.dec.com>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<6cic57$egr$1@stcn-www.stnet.ad.jp> <34ED0773.45055E4A@tko.dec.com> <6cjci9$sn$1@stcn-www.stnet.ad.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 1043e7,31be2b21ec0df5a2 X-Google-Attributes: gid1043e7,public From: Maki Watanabe <watanabe.maki@tko.dec.com> Subject: Re: ファイルの行数とロック Date: 1998/02/22 Message-ID: <34EFF52D.A68E2055@tko.dec.com> X-Deja-AN: 327479155 Content-Transfer-Encoding: 7bit References: <6cic57$egr$1@stcn-www.stnet.ad.jp> <34ED0773.45055E4A@tko.dec.com> <6cjci9$sn$1@stcn-www.stnet.ad.jp> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-2022-jp Organization: Digital Equipment Corporation Japan Newsgroups: fj.lang.perl