« PostgreSQL:大文字と小文字とを区別しない正規表現検索 ILIKE | メイン | PostgreSQL:viewに関する考察 »

2006年12月05日

PHP:flock()関数

flock()関数は、ファイルをロックします。

flock(intFp, type[, block]);

intFp:fopen・fsockopen()関数などによって返されたファイルポインタ
type:ロックの種類
block:TRUEを指定した場合、ロックをブロックモードに設定

typeに指定できるオプション
LOCK_SH:共有ロック(読み取り時) ※1と設定もできる
LOCK_EX:排他ロック(書き込み時) ※2と設定もできる
LOCK_UN:ロック解除 ※3と設定もできる
LOCK_NB:ロック中にflock()関数でブロックを行わない ※4と設定もできる


$logfile = "log.dat";

if($fp = fopen("$logfile", 'a')){  //追加書き込み
    set_file_buffer($fp, 0);  //バッファを0にする
    flock($fp, LOCK_EX);  //排他ロック
    fwrite($fp, date("Y-m-d")."\n");  //今日の日付を書き込み
    flock($fp, LOCK_UN);  //ロック解除
    fclose($fp);
}

投稿者 wing : 2006年12月05日 00:25

コメント