• 締切済み

popen使用時の実行速度

お世話になります。1000以上のファイルがあるディレクトリを再帰的に走査するのに、 fp = _popen("dir /s /b *.jpg", "r"); while (fgets(fn, sizeof(fn), fp) != NULL) { //処理内容 } _pclose(fp); のようにしました。ここでint型の変数をインクリメントして100毎に表示させて実行速度を確認すると、明らかに後になるほど速度が低下していました。 タスクマネージャーで確認しましたが、メモリも一定でメモリリークを起こしているわけでも無いようです。 原因は何でしょうか?

みんなの回答

noname#50176
noname#50176
回答No.1

fp = _popen("dir /s /b *.jpg", "r"); while (fgets(fn, sizeof(fn), fp) != NULL) { flushall(); //処理内容 } としても変わりませんか?

masaota56
質問者

お礼

flushall()を入れると、全て処理されず100程で止まってしまいました。 popenに原因があると思い質問しましたが、色々調べている内に、どうやら同程度のサイズのファイル処理のつもりが中に大きなファイルが混じっていたようでした・・・ お騒がせして申し訳ありませんでした。m(__)m

関連するQ&A

専門家に質問してみよう