free as in air

2007|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|09|11|12|
2012|03|04|05|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|03|04|06|09|
トップ «前の日(06-24) 最新 次の日(06-26)» /追記

2007-06-25 初心者向け言語 この日を編集

§ [//] 学習

学研の科学と学習とかありましたね。関係ないけど。

§ [program][php] EthnaのlockFile関数

 fopenの結果をnullと比較しているが、PHPの仕様ではエラーの場合返ってくるのはfalse。

 flockの引数にロックのモードを設定できるが、なんかLOCK_SH/LOCK_EXとLOCK_NBは論理和じゃなく普通に足し算するようだ。なのでちゃんとロックできない可能性がある。というかWindows環境でうまく動かないんだけど何故だか。

 この辺だけでも不吉なコードなんだけど大丈夫なのかね。

§ [program][php] LIBCのflock

 でもlibcだと論理和ということになっている。

 でもPHPのflockには第3の引数というものがあって、そこにtrueを指定するとノンブロッキングモードになるらしい。なんだそりゃ。

§ [program][php] phpのCレベルのflock

ext/standard/file.c(230)付近。3とか4とかマジックナンバーが出てきててかなり恐ろしい。これはもう無理かもわからんね。

act = Z_LVAL_PP(arg2) & 3;
	if (act < 1 || act > 3) {

こんなのもあるんだが、3で論理積とったら0..3にしかならんのだから、0だったらエラーにすりゃいいじゃん。 ところで第3引数が使われてない気がする。 いや、違う。errno.hで定義されるerrnoがEWOULDBLOCKだったら1になって返ってくるらしい。だから参照とってるのか。マニュアルが不正確なんだな。