2

Linuxで実行可能な流域モデルがあり、実行すると、多数の入力テキストファイルから読み取ります。シェル経由でその実行可能ファイルを見つけて(ルートなしで)実行すると、すべて正常に動作します。ただし、実行可能ファイルを呼び出す必要がある c++ プログラムを作成しているため、単純に system() を使用すると考えました。実行すると、モデルは実行されますが、プライマリ入力テキスト ファイルの 1 つに関連する「ファイルの終わり」ランタイム エラーが返されます。シェルを介して手動で実行するとプログラムが正常に実行される理由がわかりませんが、system() コマンドを介して実行するとエラーが返されます。

問題が何であるかをすぐに知る人はいないと思いますが、どこから調査を開始すればよいかわかりません。提案をいただければ幸いです。

ありがとう!

私のシステムコマンドは次のとおりです。

system("/home/name/SWAT/olentangy/Scenarios/Default/TxtInOut/swat");

私が受け取るエラーは次のとおりです。

forrtl: severe (24): end-of-file during read, unit 23, file /home/name/EO_G/EIGHT/EIGHT/file.cio
Image              PC        Routine            Line        Source             
swat               0821D03F  Unknown               Unknown  Unknown
swat               0821BD35  Unknown               Unknown  Unknown
swat               081D78D1  Unknown               Unknown  Unknown
swat               081ABD66  Unknown               Unknown  Unknown
swat               081AB621  Unknown               Unknown  Unknown
swat               081BC9DF  Unknown               Unknown  Unknown
4

1 に答える 1

3

動作にバグがswatあることは間違いありませんが、親プログラムで回避することができます。

これを置き換えます:

system("/home/name/SWAT/olentangy/Scenarios/Default/TxtInOut/swat");

これとともに:

system("cd /home/name/SWAT/olentangy/Scenarios/Default/TxtInOut && ./swat");
于 2012-10-24T18:04:25.803 に答える