2 augusti, 2019 Inopto_AB

waitpid 함수 예제

이러한 시설의 처음 두 개는 4.3 BSD에서 제공하는 wait3() 함수를 기반으로 합니다. 함수는 wait3() 인수와 동일한 옵션 인수를 사용합니다. WUNTRACED 플래그는 작업 제어를 지원하는 시스템의 작업 제어와 함께만 사용됩니다. 그 이름은 4.3 BSD에서 유래하고 그 구현에서 중지 된 프로세스의 두 가지 유형이 있다는 사실을 의미한다: ptrace() 디버깅 기능을 통해 추적되는 프로세스와 (추적되지 않은) 프로세스는 작업 제어 신호에 의해 중지. ptrace()는 IEEE Std 1003.1-2001의 이 볼륨에 속하지 않으므로 두 번째 형식만 관련이 있습니다. 이 컨텍스트에서 이름이 직관적으로 의미가 없더라도 WUNTRACED라는 이름은 사용법이 동일하기 때문에 유지되었습니다. wait() 또는 waitpid() 가 자식 프로세스의 상태를 사용할 수 있기 때문에 반환되는 경우 이러한 함수는 자식 프로세스의 프로세스 ID와 동일한 값을 반환합니다. 이 경우 인수 stat_loc의 값이 null 포인터가 아닌 경우 정보는 stat_loc이 가리키는 위치에 저장됩니다. stat_loc이 가리키는 위치에 저장된 값은 반환된 상태가 다음 중 하나에 의해 종료된 종료된 자식 프로세스에서 온 경우에만 0이 됩니다. 옵션. wait() 및 waitpid()에 영향을 미치고 기록 구현에서 일반적인 확장은 ptrace() 함수입니다. 자식 프로세스에서 호출되며 해당 자식이 중지하고 WIFSTOP에 표시된 상태와 동일한 상태로 표시되는 상태를 반환합니다.

ptrace() 자식의 상태는 전통적으로 WUNTRACED 플래그(또는 wait() 함수)에 관계없이 반환됩니다. 대부분의 응용 프로그램은 해당 또는 자식이 사용하는 확장을 제어할 수 있으므로 이러한 확장에 대해 걱정할 필요가 없습니다. 그러나 명령 인터프리터와 같은 응용 프로그램은 임의의 프로세스를 호출하는 응용 프로그램은 임의의 프로세스가 이러한 확장을 오용할 때 이 동작을 볼 수 있습니다. waitpid() 함수는 pid 인수(pid_t)-1이고 옵션 인수가 0인 경우 wait()와 동일합니다. 그렇지 않으면 해당 동작은 pid 및 옵션 인수의 값에 의해 수정되어야 합니다.

Kontakta oss!