PHP: 2008年8月アーカイブ

set_file_buffer($fp, 0);

//書き込みバッファを0にする。
通常、ファイルの書き込みには、バッファと呼ばれるところに一時的に書き込み、ある程度溜まったところで、ファイルに書き込むという動作をするので、バッファにある値と実際のファイルの値が異なる瞬間が存在する。


flock($fp, int operation);

//汎用ファイルをロックする。
operationを指定することにより、ロックすることもできる。


$fp = @fopen("/tmp/counter", "r+");
// ファイルがなかった場合、ファイルを作る。
if( !$fp ) {
    $fp = fopen("/tmp/counter", "w");
}

// バッファとファイルの差異を0にする。
set_file_buffer($fp, 0);

//ファイルを排他ロック
flock($fp, LOCK_EX);
//ファイルポインタを先頭へ
rewind($fp);
$buf = fgets($fp, 1000000);
if( !$buf ) {
     $buf = 1;
} else {
     $buf++;
}
//ファイルポインタを先頭へ
rewind($fp);
fputs($fp, $buf);
//ロック解除
flock($fp, LOCK_UN);
fclose($fp);

参照・引用:スタックアスタリスク

うにくろっく

このアーカイブについて

このページには、2008年8月以降に書かれたブログ記事のうちPHPカテゴリに属しているものが含まれています。

前のアーカイブはPHP: 2007年11月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.1

2008年12月

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31