ブログの開発始めちゃった
Tuesday, February 7, 2006
ブログの開発、始めちゃった。
まあ、最低3ヶ月はかかるなあ。途中で挫折するかもしれんが、、、
名前は、なんにしよう。
1.まっすぐに、
餓飢魂ブログ
2.どっかの2番煎じだが、
gakiblo
3.2とあまり変わらんが、ちいと下品に、
餓鬼風呂 (ガキブロ、読みます)
4.あと、
魂風呂 (タマブロ、と読みます)
全部くだらねえが、3か4の路線か。
ちなみに、soapbox(石鹸箱)って、英語で、「街頭演説する際に台にする、石鹸出荷用の箱」、という意味があるんだよね。だから、「風呂」とかで、下品だと思ってしまうのは、私が下品なだけ。
というか、それでうなずいた、あなたも、下品(笑)。
で、続きを読むを押すと、コンピュータチックは話。 以下のPHPのプログラムは、意図したとおりに動きません。(これで、長い時間はまった。)
少なくとも、PHPの4.4.2では。
なぜか分る?>見てる人。
main.php
require('sub.php');
writelock();
/* ここで、ロックがかかってることを前提に処理する。
?>
sub.php
function writelock(){
$fp = fopen( 'lock.dat');
flock( $fp, LOCK_EX );
}
?>
ちなみに、こういう目的で、flockが使えない場合もあることも分った。(prefork使ってないと使えないとか。)
でも、これは、別の理由。
解答は、、、コメントを待つ!>某後輩
まあ、最低3ヶ月はかかるなあ。途中で挫折するかもしれんが、、、
名前は、なんにしよう。
1.まっすぐに、
餓飢魂ブログ
2.どっかの2番煎じだが、
gakiblo
3.2とあまり変わらんが、ちいと下品に、
餓鬼風呂 (ガキブロ、読みます)
4.あと、
魂風呂 (タマブロ、と読みます)
全部くだらねえが、3か4の路線か。
ちなみに、soapbox(石鹸箱)って、英語で、「街頭演説する際に台にする、石鹸出荷用の箱」、という意味があるんだよね。だから、「風呂」とかで、下品だと思ってしまうのは、私が下品なだけ。
というか、それでうなずいた、あなたも、下品(笑)。
で、続きを読むを押すと、コンピュータチックは話。 以下のPHPのプログラムは、意図したとおりに動きません。(これで、長い時間はまった。)
少なくとも、PHPの4.4.2では。
なぜか分る?>見てる人。
main.php
require('sub.php');
writelock();
/* ここで、ロックがかかってることを前提に処理する。
?>
sub.php
function writelock(){
$fp = fopen( 'lock.dat');
flock( $fp, LOCK_EX );
}
?>
ちなみに、こういう目的で、flockが使えない場合もあることも分った。(prefork使ってないと使えないとか。)
でも、これは、別の理由。
解答は、、、コメントを待つ!>某後輩
コメント#63
↓とかマニュアルに書いてありますけど…
>いくつかのオーペレーティングシステムでflock() はプロセスレベルで
>実装されています。ISAPIのようなマルチスレッド 型のサーバーAPIを
>使用している場合、同じサーバーインスタンスの並 列スレッドで実行
>されている他のPHPスクリプトに対してファイルを保 護する際に
>flock()を使用することはできません!
違いますかね~(汗)
|某後輩|
Wed,Feb- 8 22:17|
コメント#64
違う。
> ちなみに、こういう目的で、flockが使えない場合もあることも分った。
> (prefork使ってないと使えないとか。)
って書いたよね。あくまで、flockが、使えない環境があるという話。
今回は、このプログラミング自体が間違ってるという、ことなんだが。
あともう一個ヒント。
「リソース」
ヒント出しすぎかな?
|たなか|
Wed,Feb- 8 22:58|
コメント#65
しゃあないなあ。
もうひとつ、ヒント。
以下のようなプログラムなら、動きます。
main.php
<?php
require(\'sub.php\');
$lock = writelock();
/* ここで、ロックがかかってることを前提に処理する。
unlock($lock);
?>
sub.php
<?php
function writelock(){
$fp = fopen( \'lock.dat\');
flock( $fp, LOCK_EX )
return $fp;
}
function unlock($fp)}
fclose($fp);
}
?>
|たなか|
Thu,Feb- 9 12:13|
コメント#66
ようやくわかりました。
↓とかでも動きますよね。
<?PHP
writelock();
/* ここで、ロックがかかってることを前提に処理する。*/
function writelock(){
global $fp;
$fp = fopen( \'lock.dat\',\'a+\');
flock( $fp, LOCK_EX );
}
?>
使わないリソースは(ロックを含めて)即開放するという大前提があったとは…
「リソース」ってヒントは、マニュアルの↓を見ろって事だったんですね。
>リソースの開放
>PHP4のZendエンジンに導入されたリファレンスカウンティングシステム
>のおかげで、あるリソースがもう参照されなくなった場合に(Javaと全く
>同様に)、そのリソースは自動的に削除されます。この場合、このリソ
>ー スが作成した全てのリソースはガーベッジコレクタにより開放され
>ます。 このため、free_result 関数を用いて手動でメモリを
|某後輩|
Thu,Feb- 9 13:59|
コメント#67
あぁ、切れてる…(汗)
マニュアルのここの事でした。
http://jp.php.net/manual/ja/language.types.resource.php
いい勉強になりました~
|某後輩|
Thu,Feb- 9 14:02|
コメント#68
完璧!100点。
|たなか|
Thu,Feb- 9 22:45|
コメントする
トラックバック
この記事へのトラックバックURL:
これまでに受信したトラックバックはありません。