アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。1000以上のファイルがあるディレクトリを再帰的に走査するのに、

fp = _popen("dir /s /b *.jpg", "r");
while (fgets(fn, sizeof(fn), fp) != NULL) {
//処理内容
}
_pclose(fp);

のようにしました。ここでint型の変数をインクリメントして100毎に表示させて実行速度を確認すると、明らかに後になるほど速度が低下していました。

タスクマネージャーで確認しましたが、メモリも一定でメモリリークを起こしているわけでも無いようです。

原因は何でしょうか?

A 回答 (1件)

fp = _popen("dir /s /b *.jpg", "r");


while (fgets(fn, sizeof(fn), fp) != NULL) {
flushall();
//処理内容
}

としても変わりませんか?
    • good
    • 0
この回答へのお礼

flushall()を入れると、全て処理されず100程で止まってしまいました。

popenに原因があると思い質問しましたが、色々調べている内に、どうやら同程度のサイズのファイル処理のつもりが中に大きなファイルが混じっていたようでした・・・

お騒がせして申し訳ありませんでした。m(__)m

お礼日時:2007/10/07 15:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!