次の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」情報を追加した後...それは消えました。ハイゼンバグを持っているようです。