Go to the first, previous, next, last section, table of contents.

flock

`flock(FILEHANDLE,OPERATION)'
FILEHANDLE について flock(2) をコールする。 OPERATION の定義については flock(2) のマニュアルを参照のこと。 成功すると true、失敗すると false を返す。 flock(2) をインプリメントしていないマシンで使用すると 致命的エラーとなる。以下は BSD システム用 mailbox appender である。
$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'}")
     || die "Can't open mailbox: $!";

do lock();
print MBOX $msg,"\n\n";
do unlock();

Go to the first, previous, next, last section, table of contents.