waitpid wnohang 예제

일부 시스템에서는 반환 값이 -1이면 자식 프로세스가 자동으로 수확될 수 있습니다. 자세한 내용 및 기타 예제는 perlipc를 참조하십시오. . 이러한 각 호출은 오류의 경우 errno를 적절한 값으로 설정합니다. . . 어떻게 확인할 수 있습니까? 나는 waitpid 남자 페이지를 읽었지만, 그것은 나에게 명확하지 않다, 어쩌면 내 영어는 충분하지 않습니다. glibc에 대한 기능 테스트 매크로 요구 사항(feature_test_macros(7)참조): waitid(): 성공 시 0을 반환하거나 WNOHANG이 지정되었고 ID로 지정된 자식(ren)이 아직 상태가 변경되지 않은 경우; 오류가 발생하면 -1이 반환됩니다. 자식 프로세스 execvp가 성공했는지 확인 (방법을 모른다) .

즉, 프로세스 그룹 ID가 pid의 절대 값과 동일한 자식 프로세스를 기다립니다. } 다른 { / * * 부모에 의해 실행 코드 * / 할 { w = 웨이트 피드 (cpid, 및 상태, WUNTRACED | WCONTINUED); (w == -1) {perror(“waitpid”); 출구(EXIT_FAILURE); } Linux 2.4 이전에는 스레드가 프로세스의 특별한 경우일 뿐이므로 후자가 동일한 스레드 그룹에 속한 경우에도 한 스레드가 다른 스레드의 자식을 기다릴 수 없었습니다. 그러나 POSIX는 이러한 기능을 규정하며 Linux 2.4이후 스레드는 기본적으로 동일한 스레드 그룹의 다른 스레드의 자식을 기다릴 수 있습니다. IDtype 및 ID 인수는 다음과 같이 기다릴 자식(ren)을 선택합니다. 대신 스레드는 Linux 고유 클론(2) 시스템 호출을 사용하여 생성되는 프로세스입니다. 이식 가능한 pthread_create(3) 호출과 같은 다른 루틴은 복제본(2)을 사용하여 구현됩니다. cpid = 포크(); (cpid == -1) { perror(“포크”); 출구(EXIT_FAILURE); } waitpid()의 반환 값은 수확되는 프로세스의 종료 상태가 아닙니다. 전달한 포인터에 저장됩니다. waitpid()의 반환 값은 함수 자체가 무언가를 성공적으로 거둘 수 있었는지 여부에 관한 것입니다: -1 을 거둘 것이 없거나 어떤 종류의 오류가 있는 경우; 0 WNOHANG을 통과하고 자식 프로세스가 있지만 아직 종료되지 않은 경우; 프로세스가 수확된 경우 양수(pid와 동일)를 지정합니다.

Dette indlæg blev udgivet i Ikke-kategoriseret af admin. Bogmærk permalinket.

Der er lukket for kommentarer.