Иметь такой код:
unsigned pid = waitpid(mPid, &status, WNOHANG);
mExitStatus = WEXITSTATUS(status);
Получите отладочную печать для переменной как:
mExitStatus = 15
status = 3840
Для «mExitStatus = WEXITSTATUS (status)» я получил следующую оценку, которая объясняет
evaluates to the least significant eight bits of the return code of the child which terminated
3840 = F00; F is 15 which is assigned to mExitStatus
Но вопрос в том, как я могу использовать это 15, чтобы судить, правильно ли завершен дочерний процесс или нет?
15 от 3840. Но 3840 — это возврат по процессу Linux? Есть ли смысл для этого?
В общем описании мой основной запустил 4 child_process, запустив 4 теста. Я хотел бы судить в моем основном, если эти 4 теста пройдены или нет. Поэтому я думаю, что мне нужно узнать статус выхода моего дочернего процесса.
Спасибо
Стандарт состоит в том, что нулевой статус выхода означает «успех», а все остальное — своего рода провал. В системах * nix значение от 129 до 150 или около того обычно можно интерпретировать как «процесс был прерван из-за сигнала», а номер сигнала — это возвращаемое значение минус 128. Обычный сбой часто возвращает 1, но иногда 2 или 3 или другое небольшое число.
В конце концов, то, что возвращает программа, полностью зависит от программы, но это типичные значения.