python — c ++ & quot; система & quot; вызов не возвращает правильный код выхода

У меня есть следующий код 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 ++, res равно -1, даже если строка «Это завершится с кодом 0» будет напечатана правильно.

Как ни странно, если я переместу вызовы в начало выполнения приложения C ++, код завершения, возвращаемый системным вызовом python, будет правильным.

Что может привести к тому, что оно станет «неправильным» по пути?

РЕДАКТИРОВАТЬ:

После добавления некоторой отладочной информации «cout» вокруг проблемы … она исчезла. Похоже, у меня есть Heisenbug.

2

Решение

Вы уверены, что скрипт запущен?

Пытаться

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]