5部 関数リファレンス

flock

2011年9月20日
flock FILEHANDLE, OPERATION

引数FILEHANDLEに対応するファイルのロックや解除を行います。成功時には"真"を、失敗時には"偽"を返します。この関数はシステムコマンドのflock/lockf/fcntlのうち、システムがサポートしているものを呼び出します。flockシステムコールが実装されていないマシンでの実行は、致命的エラーとなります。

BSDシステムでのメールボックスへの追加処理

$LOCK_SH = 1;
$LOCK_EX = 2;
$LOCK_NB = 4;
$LOCK_UN = 8;
sub lock {
flock(MBOX,$LOCK_EX);
# さらに、待っている間に書き足した
# 人がいるといけないので 
... 
seek(MBOX, 0, 2);
}
sub unlock {
flock(MBOX,$LOCK_UN);
}
open(MBOX, ">>/usr/spool/mail/$ENV{'USER'}")
or die "Can't open mailbox: $!";
lock();
print MBOX $msg,"\n\n";
unlock(); 

flockではネットワークをまたがって、ロックは行なえません。このためには、fcntlを使ってロックしなくてはなりません。

Comment

コメントを残す

メールアドレスが公開されることはありません。

関連記事

リズムファクトリーはホームページの制作会社です。
ホームページ制作に関するご要望・ご相談はこちらからどうぞ。

株式会社リズムファクトリーでは現在、下記の職種について人材募集を行っております。
求人をクリックすると「求人情報サイトFind Job!」の求人詳細画面が開きますので、こちらからご応募下さい。

提供 : Webな人の求人情報サイト Find Job!