Это 4479 или 0x117f выглядит как то, что вы бы увидели возвращенным из вызова C / C ++ system()
(в отличие от значения предопределенной переменной Unix $?
,который может быть только 0-255).И учитывая, что вы работаете в Linux, вы, скорее всего, используете glibc .
Так что в этом случае это значение не равно 0-255 exit()
., но вместо этого он отформатирован как статус, установленный waitpid()
(который может содержать статус выхода, но, вероятно, не в этом случае).
Если это так, то источник говорит мне, что WIFSTOPPED(4479)
вернет true, а WSTOPSIG(4479)
вернет 17. (Для получения дополнительной информации см. справочную страницу waitpid()
.) Итак, процесс, для которого 4479возвращается, не завершился и все еще существует, но был остановлен сигналом 17.
Сигнал 17 - SIGCHLD (по крайней мере, если вы работаете в Linux на x86), что означает "Дочерний [процесс] остановлен или завершен ".
Не зная больше о вашем конкретном контексте приложения, я понятия не имею, почему возникает такой SIGCHLD.