Как получить код возврата порожденной программы - PullRequest
3 голосов
/ 26 апреля 2011

Это запустит программу и даст мне код возврата.

int returnCode;

returnCode = system(program);

Как я могу сделать то же самое с execv?

Ответы [ 2 ]

5 голосов
/ 26 апреля 2011

Семейство вызовов exec очищает текущий процесс и запускает новую программу в том же пространстве процесса.Если вы хотите выполнить другую программу в вашей текущей программе, вам нужно запустить новый процесс, используя fork Затем вы вызываете exec в дочернем процессе и заставляете родителя ждать, пока дочерний процесс завершится.Затем функция waitpid предоставит код возврата дочернего процесса.

См. здесь для примера.

0 голосов
/ 26 апреля 2011

Я цитирую справочную страницу

Семейство функций exec () заменяет текущий образ процесса новым образом процесса.

т.е. exec не возвращается.Чего вы хотите достичь, или поставить иначе, что не так с системой?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...