自作CGIを評価するスレ
■ このスレッドは過去ログ倉庫に格納されています
0001Premature end of script headers : /this/thread
03/04/05 12:47ID:tIET0nhfよほどプログラムが短くないかぎりはアプロダにでもアップしてね。
0357211
03/06/17 06:07ID:???うーん、無理にスタックを意識して、
goto文を使用しようとは思わないです・・・。
あまり、ソースがトリッキーすぎると、
未来の俺から苦情がきます。
それでなくても、結構トリッキーっぽいから・・・
スタックとは、何なのかはっきり分かってなかったのですが、
いろいろ調べ回って、何なのか、何となく分かりました。
スタックについて、勉強させてもらう機会をいただいた皆さんに感謝です。
さて、また一つヘンテコなスクリプトを組みました。
複数のファイルから、文字列を検索するスクリプト。
My_Grep。
http://isweb25.infoseek.co.jp/computer/pcqa-2ch/cgi-bin/img/1181.zip
使い方などは、同封してるテキストファイルを読んでください。
改造してくれる人は、できればアップして、ソース見せてください。
勉強させてもらいます。
また、今回も「DirTree.pm」を同封してますが、
>>349の指摘された所は、直してます。
では、評価お願いします。
0358211
03/06/17 06:17ID:???http://isweb25.infoseek.co.jp/computer/pcqa-2ch/cgi-bin/img/1182.zip
修正しました。
0359211
03/06/18 07:21ID:???http://isweb25.infoseek.co.jp/computer/pcqa-2ch/cgi-bin/img/1184.zip
このバージョンで、
複数の拡張子のファイル検索が可能。
ログで、先頭のインデントなどのスペースを削るようにした。
・・・誰か、評価お願いします・・・
誰も手がってくれない。寂しいね。
0360nobodyさん
03/06/18 15:16ID:???乙。
俺よりはるかにレヴェルの高いことやってらっしゃるので、
研究させてもらいます。
# 自作スクリプトを公開できるのはいつになることやら、、、
0361211
03/06/19 02:58ID:???ども。 一応覗いてくれてた人がいてたんだね。
よかった。
まったく手がってもらえないから、かなり寂しかった(w
やってる処理自体は、そんなにレベルの高い物じゃなかったりします。
俺も研究させてもらうので、何かスクリプト作ったらアップしてくれたら嬉しいです。
0362211
03/06/19 02:59ID:???http://isweb25.infoseek.co.jp/computer/pcqa-2ch/cgi-bin/img/1189.zip
このバージョンで、
結果ログファイルがHTMLファイルになって、
ヒットしたキーワードが強調表示されるようになった。
ファイルがバイナリファイルか調べるようにした。
拡張子指定で、ファイル名に拡張子と同じ文字列があったら、
そのファイルも検索対象になっていたバグを修正。
指定した拡張子のファイルが無かった時でも、
つづけて検索フェイズに移行してたバグを修正
Html.pmってファイルを書き換えると、
出力するログの見た目が変えられるかもしれません。
それと、今回のバージョンで謎なバグが一つ・・・
tmpファイルが、今までスクリプト終了と同時に、
削除されるようにしてたんだけど・・・
今回のバージョンは、なぜかtmpファイルが残ります・・・。
何度も見直したんだけど、まったく原因がわかりませんでした。
どなたか、ご指摘いただけたら嬉しいです。
0364211
03/06/19 14:12ID:???あら。
何か主旨が変わってきたね。
評価貰えるよう、スレを上げるために、
何もなくスレ上げてたら荒らしだから、
何か無いかと、がんばってバージョンアップしてたんだけど・・・。
でも、いくつか勉強させてもらったし・・・
この辺が潮時かな。
じゃ、俺のスクリプト公開は終了します。
0365nobodyさん
03/06/19 14:28ID:???もう少し実用性のあるもので再チャレンジしてみたら?
今回のは正直言って使いたいと思えるものでなかったから
評価しなかった
あれば便利とか使ってみたいと思えるものなら協力者も増えるのでは
03661
03/06/21 10:11ID:???このスレは終了いたしました。
みなさん書き込みありがとうございました。
投稿件数 : 365
最終投稿者: nobodyさん
最終投稿日: 03/06/19
0367nobodyさん
03/06/21 17:05ID:???∧__∧ / ̄ ̄ ̄ ̄ ̄ ̄
( ^u^) < 乙彼様でした☆
と つ \______
(__つ 丿
し'
0368nobodyさん
03/06/22 07:46ID:???下記のロック、アンロックはどうでしょうか?
# lock routine
sub lock {
$retry = 5;
if (-e $lockex_file) {
$mtime = (stat($lockex_file))[9];
if ($mtime + 600 < time) {
rename($lockex_file, $lock_file) || &error("lock error");
}
}
while (1) {
last if rename($lock_file, $lockex_file);
if (--$retry < 0) {
&error("lock error");
}
}
}
# unlock routine
sub unlock {
if (-e $lockex_file) {
rename($lockex_file, $lock_file) || &error("lock error");
}
}
評価お願いします。
0369nobodyさん
03/06/22 09:04ID:???いいんじゃないかな。
while文の所は・・・
while ($retry--) {
return 0 if rename($lock_file, $lockex_file);
}
&error( 'Lock error' );
こうの方が良いかな。
0370368
03/06/22 10:02ID:???どうもありがとうございます。
他のスレでこういう書き方をみかけました。
while (!rename($lock_file, $lockex_file) {
if (--$retry <= 0) {
&error("lock error");
}
}
>>369さんが書いてくれたものとどちらがいいんですかね?
0371nobodyさん
03/06/24 13:54ID:01cZwzPjこのルーチンだと穴がある。経験則だけど、アクセスが殺到すると簡単に壊れる。
説明するのめんどいので、
http://www.din.or.jp/~ohzaki/perl.htm#File_Lock
この辺りでも読んでみて。
>>370
好みだと思う。
個人的には>>368も>>369も>>370もループの最中にreturnやら&errorで関数の
外に飛んでるので気持ち悪い(これも好みの問題)。
あと、>>368はテストが最大6回行われるのに大して、>>369と>>370は
5回なので等価なコードじゃなくなってる。
というわけで、個人的にはこう書くかな↓
my $retry = 5;
for($retry++; $retry; $retry--){
last if rename($lock_file, $lockex_file);
}
error("lock error") if not $retry;
0372368
03/06/24 14:57ID:???ありがとうございます。
ロックが甘いということは分かりましたが、アンロックはどうでしょうか?
まだ371さんがおっしゃったサイトは見てないのでなんとも言えませんが…。
もう少し勉強してみることにします。
指摘されたリトライですが、
if (--$retry <= 0) {
こうですね。
0373nobodyさん
03/06/24 15:24ID:???> このルーチンだと穴がある。経験則だけど、アクセスが殺到すると簡単に壊れる。
> 説明するのめんどいので、
> http://www.din.or.jp/~ohzaki/perl.htm#File_Lock
> この辺りでも読んでみて。
その辺り読んで、載ってるルーチンそのまま使ってテストした所、
ファイル壊れました。
俺は、>>368くらいの簡単なロックで良いと思うけど。
このロックで壊れるようなアクセス受けてるって事は、
その説明に載ってるようなルーチンでも、ほぼ壊れる。
どんなロックしててもファイルは壊れるんだから、
小細工いれた重いロック処理するより、
簡単にロックする処理入れた方が良いような。
0374nobodyさん
03/06/24 15:33ID:???そんなことはないよ。ただ言えることは、この板ではまだまともにロックできて
いるルーチンが1つも書かれてないな。
0375nobodyさん
03/06/24 15:35ID:???>そんなことはないよ。ただ言えることは、この板ではまだまともにロックできて
>いるルーチンが1つも書かれてないな。
flock使っちゃだめ?
0378nobodyさん
03/06/24 15:40ID:???use strict;
use Fcntl qw(:flock);
$tmpfile = "$datafile".".$$.". time() .".csv"; #万が一リネーム失敗したときのために、
#ユニークなファイル名にしておく
open (LOCKF, ">$datafile"."_lockf") or die("cannot open:$!"); #ロックファイルを作成する
#(★注:ロックファイルは、各CSVごとにユニークに)
flock (LOCKF, LOCK_EX); #ロックファイルをflockする
open(IN, "< $datafile") or die("cannot open:$!"); # 読みのみモードで開く
open(TMP,"> $tmpfile"); #テンポラリファイルを作成
while ($line = <IN>){
$line .= <IN> while ($line =~ tr/"// % 2 and !eof(IN));
$line =~ s/(?:\x0D\x0A|[\x0D\x0A])?$/,/;
@values = map {/^"(.*)"$/s ? scalar($_ = $1, s/""/"/g, $_) : $_}
($line =~ /("[^"]*(?:""[^"]*)*"|[^,]*),/g);
#必要なものだけをEUCにして、出力時にSJISにする
foreach $value (@values){
&jcode::convert(\$value, "euc");
};
#CSV形式に変換
$newline = join ',', map {(s/"/""/g or /[\r\n,]/) ? qq("$_") : $_} @values;
print TMP "$newline\n" ;#テンポラリファイルに1レコード書き込み
}
close TMP;
close IN;
unlink $datafile;
rename ($tmpfile, $datafile) or die ("cannot rename : $!");
close LOCKF;
0379374
03/06/24 15:41ID:???この根拠がどこからくるのかわからないが、
少なくともとてつもないアクセス集中に対応できるように非ブロックモードで
タイムアウトを備えてないとまず無理だということは教えておこう。
0380378
03/06/24 15:41ID:???0381371
03/06/24 15:46ID:01cZwzPjそんなことはない。
というか、上(大崎氏の)のルーチンでファイル壊れたんならファイルシステムに
不備があるか、打ち間違いがあるかパーミッションやらの設定を誤ってるかどれか。
ファイルシステム上でrenameが衝突しないという条件の元でならうまく行くはず。
アクセス集中でファイルが壊れるのはロックの機構に不備がある
だけで、正しい状況下で行われたUNIX系OSでのflockでは、ファイルシステム
にバグがあるか、ファイルシステム自体のクラッシュでもない限り壊れない。
>>375
flockはNFS越しの場合に失敗するから、ファイスシステムを予め
調べておく必要がある。
NFS越しだとPOSIXモジュール使うかfcntl使う必要があった気がする。
>>376
> どんなに集中アクセスを受けても、
> 絶対壊れないファイルロックってある訳ない。
> あったら、ぜひ見て見たい。
非ネットワークファイルシステム+UNIX系OSでのflock。stableなバージョン上で
これで壊れたって話は逆にあったら見てみたい。
0382371
03/06/24 15:48ID:01cZwzPjネットワークファイルシステムを使ってる場合はね。
それ以外で壊れるという話は(ファイルシステム開発中のバグ以外は)
聞いたことない。再現できたら結構すごいと思うが。
0383371
03/06/24 15:54ID:01cZwzPjhttp://elib.cs.berkeley.edu/~loretta/perl/nmanual/pod/perlfaq5/How_can_I_lock_a_file_.html
0384nobodyさん
03/06/24 18:50ID:???0385371
03/06/24 19:10ID:01cZwzPj2つのプロセスが同時に追加書込しようとしたら、
その部分は壊れるよ。
0390371
03/06/24 20:45ID:???symlinkにしろ、rewriteにしろ、mkdirにしろ、OSがファイルシステム上で衝突しないように
設計されているという大前提で作られてるし、実際衝突するかどうかはOS次第なので、
OSに非依存で汎用可能なアルゴリズムっていうのは原理的に不可能じゃないかと。
0392nobodyさん
03/06/24 20:48ID:???OS側でAtomicでもプログラム側がそうでなけりゃ・・・。
0394nobodyさん
03/06/25 00:00ID:???while (1) {
while ( not defined ($lock = &my_flock()) ) {};
open (IN, "./count.txt");
$data = <IN>;
close (IN);
&my_funlock($lock);
print ++$data. "\n";
while ( not defined ($lock = &my_flock()) ) {};
open (OUT, ">./count.txt");
print OUT $data. "\n";
close (OUT);
&my_funlock($lock);
if ($data >= 10000) {
last;
}
}
>>371のその辺のファイルロックを別ファイルに取って呼び出してる。
これを、二つのプロセスで実行してみろ。
無事に10000までカウントなんぞできんぞ。
0396nobodyさん
03/06/25 00:39ID:???はぁ?
全体に一度だけかけろとか言うのか?
それでも壊れる。
何がまともに使えないだよ・・・
ルーチン呼び出すのに使えるも使えないもないだろヴォケ。
文句言う前に試せやハゲ。
試して、壊れなかったら文句言いにこいや。
0397374
03/06/25 00:47ID:???0398nobodyさん
03/06/25 00:57ID:???だから。
試せってよ・・・。
試しもしないで、使えてねーとか、使い方悪いとか。
そんな事言われても、説得力ねーっちゅーの。
こういう使い方したらファイル壊れないとか、
このタイミングでルーチン呼び出したら大丈夫だとか、
まー試しもしないで語ってるヤツに、
ロクな答えなんて返ってきそうにないけどな。
0399371
03/06/25 00:59ID:Q5i43+wA> 全体に一度だけかけろとか言うのか?
だってそうしないとカウントが飛んじゃうでしょ。
> 試して、壊れなかったら文句言いにこいや。
一度に5プロセス動かして1000までやってみたけど壊れないね。
FreeBSD2.2.2 + Perl5.6.0だけど。
OS何使ってて壊れるの? > 396
0400371
03/06/25 01:03ID:Q5i43+wA時々ロックファイルが消えるな・・・。renameしかしてないはずなので、
ファイルシステムのバグか?
でもデータが壊れるということは今のところない模様。テスト続行中。
0401371
03/06/25 01:13ID:Q5i43+wAFreeBSD2.2.2の方も、10000件行ってエラーなし。
合計30000件実験してみたけど衝突は起こってない模様(プロセスの譲り合いで片方のプロセスが
ブロックする現象は見られたが)。
単にrenameシステムコールが衝突するようなファイルシステムを持つOSを使ってるだけ
とか、そういうオチじゃなくて?>>398
0402371
03/06/25 01:22ID:???# mkdir lockdir/lockfile
で、20プロセス同時起動で、30000件やってみたけど、全く問題なし。
さすがに30000回連続で20プロセスが同時に1つのファイルにアクセス
する状況はありえないだろうから、少なくともウチの環境上では
きちんとロック機構が機能してると思われる。
で、たった2プロセス同時起動で10000件持たないファイルシステムを
持つ環境がどんな環境なのかとても気になるので早く教えてください>>398
あなたの言う条件↓は満たしましたよ。
> 文句言う前に試せやハゲ。
> 試して、壊れなかったら文句言いにこいや。
0403nobodyさん
03/06/25 01:30ID:???マジで?
ファイル壊れない?
こっちの環境は、Win2kだけど。
> 単にrenameシステムコールが衝突するようなファイルシステムを持つOSを使ってるだけ
んな訳ない。
2kで、そんなバグ聞いた事ない。
ずっとテスト環境は2kだったからなぁ〜。
とりあえず、こっちもVineの環境があるから、そっちでも試す。
>で、たった2プロセス同時起動で10000件持たないファイルシステムを
>持つ環境がどんな環境なのかとても気になるので早く教えてください>>398
煽りですか。
あんた、一言多いね。
0404371
03/06/25 01:49ID:???多分そのせいじゃないかなぁ。ファイルシステム何になってます?
こっちは今のところ30プロセス同時起動で30万件ノンストップで突破してるので、
スクリプト自体に問題があるとは思えない。
まぁ、このルーチンはrenameの堅牢性に頼ってるので、その点において汎用性は
薄いということを証明する形にはなったかも。
> 2kで、そんなバグ聞いた事ない。
1秒間に同じファイルを数十回renameする必要性ってあまりないからなぁ。
renameのファイルの取り合いって普通の状況だとまず起こりえないし。
ソース読んだら分かると思うけど、renameの空振り以外に原因は考えにくい
ので、再現性あるなら追試してレポート出してみたら?
0405nobodyさん
03/06/25 02:14ID:???ファイルシステムは、もちろんNTFS
Vineで試してみた。
たしかに、2kの時は途中ファイルが壊れてカウントが1に戻ったりしたけど、
Vineはそんな事なかった。
・・・が、おかしい。
3つのプロセスで動かしたが、ログがおかしい。
同じ数字のカウントをする場面がある。
3つのプロセスでカウントしていったら、
同じ数字がカウントのログとして出るのはおかしいでしょ?
そっちでは、ちゃんとカウントしていってる?
0406371
03/06/25 02:28ID:???>>394のソース直した?部分的でなく、全体をロックで囲まないと誤動作するよ。
print文の直上直下にあるunlockとlockの2行を外せばうまく行くと思う。
0407nobodyさん
03/06/25 02:44ID:???あ・・・悪い。
修正してなかった。
ちゃんと動いてる。
もっと沢山のプロセスと、もっと沢山のループで試したかったけど、
Vineが入ってるPCのCPUが弱いんでやめた。
なんだ・・・今回の実験で、2kがいかに糞なのかが証明されたのか・・・?
結果は、壊れないファイルロックが存在したって事か?
・・・俺が、間違ってますた。 スマソ
0408371
03/06/25 11:01ID:???> 結果は、壊れないファイルロックが存在したって事か?
昨日、あのまま30プロセス同時起動のまま寝て、今朝見たら400万件を
突破してました。もちろんノンストップで。
30プロセスが400万回連続で殺到しても平気だということなんで、
少なくともウチの環境では、ほぼ「絶対に壊れないロック機構」と言い切って
差し支えないと思う。
どうでもいいけど、このテストスクリプトだと、count.txtを書き込みオープンした
瞬間にプロセスが落ちるとカウンタリセットされるよね。堅牢なスクリプトを作ろうと
思ったらそこまで気を遣う必要があるかも。
>>377
flockに書き換えて同じ事やってみたけど、20プロセス10万件で壊れずに
行ってます。やっぱりOSの問題か、flock over networkが原因ではないかと。
スレ違いなようなので、この辺で。
0409nobodyさん
03/06/25 14:12ID:???0410368
03/06/25 18:02ID:???とても興味深い話題をありがとうございます。
>>402さんがおっしゃってることを試す価値はありそうなので、
とりあえずファイルを使うロックから、
ディレクトリを使うロックに変えてみたいと思います。
0413nobodyさん
03/06/26 06:18ID:EBHZ+AEW0414nobodyさん
03/06/26 09:03ID:???0416nobodyさん
03/06/26 11:36ID:???0420nobodyさん
03/07/06 16:49ID:orJjX/H+そんなにrename失敗することあるんですか?
0421nobodyさん
03/07/06 16:50ID:???0422nobodyさん
03/07/06 17:08ID:GI5yk6yl0423nobodyさん
03/07/06 17:34ID:???0425nobodyさん
03/07/06 21:38ID:???0426nobodyさん
03/07/06 21:48ID:???0428nobodyさん
03/07/06 23:40ID:???0429nobodyさん
03/07/07 11:59ID:???0430山崎 渉
03/07/15 11:08ID:???__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0431nobodyさん
03/07/25 23:38ID:???0432_
03/07/25 23:47ID:???0433山崎 渉
03/08/02 02:24ID:???( ^^ )< ぬるぽ(^^)
0434ぼるじょあ ◆ySd1dMH5Gk
03/08/02 04:52ID:???ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。
=〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
= ◎――――――◎ 山崎渉&ぼるじょあ
0435nobodyさん
03/08/06 01:58ID:u4hkzo1r0436nobodyさん
03/08/06 02:05ID:???0437435
03/08/06 02:10ID:u4hkzo1rttp://www.42ch.net/UploaderSmall/source/1060103401.zip
昔作った掲示板です。今ではもうこんなにかけません。
0438nobodyさん
03/08/06 02:44ID:???ぱっとみですが、スコープや、名前空間を理解していらっしゃるのでよく勉強されてると思われます。
私の趣味的にはグロブを使わないようにするともっとよさげかと・・・
0439nobodyさん
03/08/06 03:48ID:???良かったらお願いします。
使い方はcgi呼び出して?ってリンク見ると大体書いてあります。
典型的な我流でCGIしか書いたことの無い人のソースだとは思います。
非常識な部分があればご指摘頂きたいです。
#普段タブ使っているのですが、環境に依存しそうなので
#アップの際に、全てスペースに変換しました。
#個人的な情報も消してあります。ご理解ください。
0440向こうの472=475
03/08/06 10:05ID:???コーディングスレの469さんか。(w
名前空間の扱いに振り回されてる感じがする。
基本的にパッケージ名や定数のハードコーディングは避けた方がいいし、
依存し合うものを別ファイルに分けると見通しが悪くなるだけだよ。
どうしても分けたいのなら各パーツはもっと役割分担を
はっきりさせて汎用性を上げ、OO なスタイルで組むが吉。
0441nobodyさん
03/08/06 10:38ID:???ここ過疎なので人すくなくてばれるだろうとは思ってました。。。
分けるのは、基本的に改造向けではじめました。
(HTML部分を分ける、とか。)
あと、機能追加のたびに追加したりとかって感じです。
最初はあまり深く考えないで分けていたんですが
最近えらい悩むようになってしまって
つきつめるとOOPにするしかないような気もしてきてしまします。
次になにか0から書くことがあったら、OOで書きたいとは思います。
これは今ある程度完成してしまってますし
身内で使ってくださる方がいるのであまりスタイルを変えるつもりはないです。
総書き直しでOOにしようとか毎晩のように思ったりするのですが
なかなか手出しする気力も時間も・・・
やっぱOOかー
0442441
03/08/06 10:58ID:???直す前のうpしてた ウワーン
0443nobodyさん
03/08/12 15:36ID:QPay4kE6age
0444山崎 渉
03/08/15 22:37ID:???│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0445nobodyさん
03/08/30 22:39ID:???>>50
自作CGIを評価するスレ
http://pc2.2ch.net/test/read.cgi/php/1049514428/
0446nobodyさん
03/08/31 01:55ID:6GeG39LLhttp://ex.1000gex.net/blog.zip
common.phpで初期設定。
排他制御も何も入れてないがとりあえず動いた。
これからトラックバックを盛り込むけど難儀するだろうなぁ
0447nobodyさん
03/08/31 02:19ID:???ただの宣伝?
0448nobodyさん
03/08/31 02:27ID:6GeG39LLSAFE_MODEでさっそく引っかかったが
0449nobodyさん
03/08/31 02:54ID:???0450ガイキチ厨房
03/08/31 06:44ID:???PHPでカウンタを作ってみたのですが、どなたかご意見下さい。
http://popup3.tok2.com/home/program/cgi-bin/uploader/source/File:0011.txt
0451nobodyさん
03/08/31 11:38ID:???script書き始めなら上々の滑り出しだと思う。
■L38の $ip のダブルクウォートは意図不明。
■” と ’ が混在してるけど、このスクリプトで使われてる ” は上記をのぞいて ’ に統一可能。
■L41は、$newdata = $newcont . '<>' . $_SERVER['REMOTE_ADDR'] ; と書けば十分なのでは。
■関数名とレフトブラケットの間に半角スペースがあったり無かったりする。これは趣味だから
どう書いてもいいと思うが、普通は入れない。制御語(ifとかforとか)の後には入れる。そうすることで
関数と制御構造を見分けやすくする。カラーリング機能のないエディタではこの方が見やすい気もする。
いずれにせよ、どっちかに統一したほうがよいと思われ。
■切り詰めを忘れている。ので、現データが 13<>127.127.127.127 で上書きデータが、14<>25.25.25.25 だった
場合、14<>25.25.25.257.127 に。書き込んだ後で、ftruncate(); を使ってファイルを切り詰める必要あり。
0452nobodyさん
03/08/31 11:40ID:???ログファイルが壊れる(例えば 8424<>127.0.0.1420<>127.0.0.8420<>127.0.0.842の ように)から
入れたのなら、アイディアとしては◎だが、スマートな処理とはいえないかと。
■あと、排他制御にバグがあるのでは。
ロックがかかっていても、fopen(); も flock(); も、 warning や fatal error (noticeも) を吐かないため、
処理が続行する。排他制御になってもならなくてもこのスクリプトは処理を最後まで実行するので、flock(); は
ちゃんと働いてない。
実際には起こらないかも知れないが、論理上、ロックがかかっているために L32 の fgets(); が失敗して
$buf に false が入ってカウンターが0に戻る可能性がある。L26でロックが取れなかった場合、
つまり前のリクエストを処理中の可能性がある場合、書き込みをスキップするかスクリプトを終了
するかブロックモードで待機させる必要があると思う。http://jp.php.net/flockにあるとおり、flock(); は
失敗すると false を返す。
■同じ理由で、前のロックが邪魔してロックがかかっていないのに書き込みに進行してしまうことがある。
書き込みがいくつも重なると、dat の内容がが妙なことになる予感。ここらあたりを rewind(); が力技で
解消しているように見える。
0453nobodyさん
03/08/31 21:50ID:???0454nobodyさん
03/08/31 21:56ID:6GeG39LLhttp://s2.arigato3.net/~hon7/blog/
ハイブリッドP2Pによるトラックバックを考えてます
0455nobodyさん
03/09/01 00:56ID:???話はそれからだ
0456nobodyさん
03/09/01 01:41ID:???■ このスレッドは過去ログ倉庫に格納されています