2011-07-05 6 views
0

投稿前にどこでも検索しましたが、回答が見つかりませんでした..スクリプトで呼び出すとプログラムがフリーズします!

アルゴリズムの実行時間についての統計情報(平均、セントデベロッパーなど)を計算する必要があります。このC++プログラム(bb.exe)を入手し、アルゴリズムを起動してcomp時間を出力します。

私はこのプログラムをシェルから起動するたびに時間がかかりますが、うまく動作します。

実行は本当に速くないので、私は何度も前のアルゴリズムを実行するために

system("bb.exe > output.txt"); 

を呼び出し、必要な統計情報を計算)システムを使用して交流プログラム(CalculateStatを)(書いたので、私がすることができます"./CalculateStat"を起動して、数時間後に戻って結果を確認してください。

CalculateStatは、bb.exeによって出力されるすべての行(標準出力)を出力します。

問題は、CalculateStatがbb.exeを起動したときに、bb.exeが理由なくフリーズする(6回の計算が2回程度フリーズする)ので、CalculateStatを実行するには、それを強制終了する必要がありますに。

最初は、 "システム"コールから問題になるかもしれないので、私はかなり同じことをしたperlスクリプトを書いたが、同じ問題がある。

誰かが提案していますか?

EDIT-- 私はこの問題は、出力ファイルへの同時アクセスが行われる場合があります取り払わので、私は唯一の連続通話を残し、「CalculateStat」ファイルを読取部から取り除く..しかし、それはまだ

をフリーズEDIT 2-- うわー..ちょっと変わってしまったので、元のbb.exeをターミナルから呼び出そうとしていたので、そこも凍ってしまった。今は問題がちょうどbbがランダムに凍っていたテスト中に決して凍りつくことはありませんでした。)

とにかく、この質問には意味がありません。申し訳ありません皆さん:(

+0

標準エラーもファイルにリダイレクトできますか?それは&bashの代わりに>であり、あなたのシェルで何が呼び出されてもわからない。 (私はもうcommand.comではないでしょうか?) – Szocske

+0

私はMacで動いています。 とにかく、私は今それをやっています!私はあなたに数分でお知らせします! – XelharK

+0

ちょうど凍った..私はctrl-cでCalculateStatを実行しましたが、CalculateStatは実行されましたが、出力にエラーはありません:(ただフリーズします.. – XelharK

答えて

0

問題は実際にはBlackbox ..奇妙なパラメータが適用されたときにフリーズしていましたが、私はメインプログラムでいくつかのチェックを使って解決しました。みんなありがとう!

0

Hmmm Cプログラムを使ってプログラムを繰り返し起動する理由を理解できません。あなたはシェルスクリプトからこれを直接行うことはできません。再びフリーズすると、検索範囲が狭くなります。

+0

実際に私はシェルスクリプトを試していませんでした、今私はあなたに知らせるでしょう:) 私は結果をtought私はperlスクリプトで試してみたのと似ていますが、それも凍結します – XelharK

0

psコマンドを使用すると、プロセスが何をしているのかを確認することができます。私の推測では、リダイレクトしなかった "標準エラー"ファイルハンドルをブロックしています。 (代わりに、&>を使用してstdoutとstderrの両方をファイルにリダイレクトしてください)

+0

標準エラーもリダイレクトしようとしましたが(bb.exe&> err.txt)、ちょうどフリーズし、Ctrl-C後にerr.txtがありません – XelharK

+0

そして、 "ps x | grep bb.exe"コマンドがSTAT列で何を言っていますか? – Szocske

0

凍結したことをどのように知っていますか?ファイルに何も追加されていませんか?それだけでバッファリングすることができます。ほとんどのプログラムは端末に書き込んでいない限り出力をバッファします。

関連する問題