【php】part29【php】
■ このスレッドは過去ログ倉庫に格納されています
0217nobodyさん
2005/08/01(月) 14:13:54ID:ez5cOkguflock処理に関して
LOCK_EX,LOCK_SH,LOCK_UN はサポートされていれば TRUE しか返さない。
要求が通るまで処理は中断する。
LOCK_SH は LOCK_EX が要求された段階で新たな要求は通らなくなる。
LOCK_NBと第三引数(WouldBlock)
要求が通らなくても FALSE で制御を戻す。
この際、WouldBlock は FALSE だが、要求が通った段階で TRUE に変わる。
バッファリング
lock権解放前にファイル書込を終了せねばならない。
バッファサイズ0にする方法は1度のシステムコールで書込が終わる状況ならばパフォーマンスの低下を招かない。
一般的にはバッファリング有で fflush する方が楽。
fopen
flock が必要な状況で 'w','w+' は鬼門。lock権確立前にファイルサイズが0にされる。
'r','r+'は存在が確実なファイルで使う。file_existsで確認後に使うのはNG。その一瞬で過去の情報になる恐れあり。
rewind と fseek
SEEK_CUR,SEEK_END はlock権確立後に使わないと過去の情報になる恐れあり。
SEEK_SET,rewind は過去の情報でも問題ないのでlock権確立前で構わない。
flock と pid
lock権の管理にはpidが使われる。
同一pidの他スレッドが要求したlock権との区別はされない。
■ このスレッドは過去ログ倉庫に格納されています