2

次のC++コードがあります

...
int res = system("python myscript.py");
if(res != 0){
    cerr << "Exit code was:" << res << endl;
}

Pythonスクリプトファイルはで終わります

print "This will exit with code 0"
sys.exit(0)

Python スクリプトを直接実行すると、適切な終了コード (0) が返されます。ただし、C++ アプリで実行すると、「これはコード 0 で終了します」という行が正しく出力されていても、res は -1 です。

奇妙なことに、呼び出しを C++ アプリの実行の先頭に移動すると、python へのシステム呼び出しによって返される終了コードは正しいものになります。

途中で「間違った」ものになる原因は何ですか?

編集:

問題の周りにいくつかのデバッグ「cout」情報を追加した後...それは消えました。ハイゼンバグを持っているようです。

4

1 に答える 1

2

スクリプトが実行されていますか?

試す

...
int res = system("/usr/bin/python /path/to/myscript.py");
if(res != 0){
    cerr << "Exit code was:" << res << endl;
}
于 2013-01-15T18:25:10.670 に答える