하위 프로세스 인 특정 실행중인 프로세스 그룹에서 대기하는 경우 WIFEXITED는 프로세스가 종료되었다는 사실을 반환합니까? 이것이 작동하는 방식입니까? 당신이 WNOHANG
을 지정된대로 내가 waitpid
이 너무 WIFEXITED
업데이트 된 데이터와 함께 작동하지 않습니다 전의 값을 0
및 pstatus
을하고있다 반환 생각 ....왜 WIFEXITED가 실행중인 프로세스에서 True를 반환합니까?
if (waitpid(-pgid, &pstatus, WUNTRACED|WNOHANG) == -1)
perror("Wait error");
if (WIFEXITED(pstatus)) {
strncpy(buf, "Exited", buf_size);
return 0;
아,하지만 지금은 종류의 이해 : 자세한 내용은 여기를 참조하십시오. 하지만 뭔가가 아직 실행 중인지 또는 종료했는지 (차단하지 않고) 있는지 확인하는 방법을 이해하지 못합니다. –
자녀가 상태가 변경된 경우 (사망) waitpid는 양수를 반환합니다. –
오, 이제 이해합니다 ... 프로세스의 상태를 얻으려면 반환 값과 상태 값을 모두 가져야합니다. (반환 값은 에러를위한 것이 아닙니다.) 고맙습니다! –