2017-12-15 8 views

답변

1

오픈 그룹 (POSIX) fork()의 사양은 말한다 :

fork() 함수는 새로운 프로세스를 생성해야한다. 텍스트 아래의 UID의/GID를 언급이 없기 때문에

, 당신이 있음을 추론 할 수 있습니다 새로운 프로세스 (아이 프로세스)는 아래와 같이 상세한를 제외하고는 호출 프로세스 (부모 과정)의 정확한 복사본한다 이러한 속성은 상속됩니다.

이러한 속성은 적절한 속성 변경 함수 (setuid 등) 또는 exec을 호출하면 결국 변경됩니다.

vfork()의 (POSIX 2,004 이하) 이전 사양은 비슷하다 vfork() 의해 만들어진 프로세스가 하나의 다른 데이터를 수정하는 경우

vfork() 함수는 동작이 정의되지 않은 것을 제외하고 fork() 동등한다 vfork()에서 반환 값을 저장하는 데 사용 된 pid_t 변수의 값보다 커서를 반환하거나 이 호출 된 함수에서 반환하거나 _exit() 또는 exec 함수 집합 중 하나를 성공적으로 호출하기 전에 다른 함수를 호출합니다.

vfork()의 사양은 POSIX 2008 (일명 POSIX 2016)에서 제거되었습니다.

+0

이것은 vfork()에도 적용됩니까? 나는 vfork() 호출 안에서 (파일 접근과 관련된) 문제를 직면하고있다. https://stackoverflow.com/questions/47135880/webmethods-integration-servers-hang-in-hp-when-it-uses-a-third-party-java-api – Aravind

+0

Aravind는 일부 코드를 공유합니다. vfork를 통해 생성 된 프로세스가 아무 것도 수정하지 않으면 정의되지 않은 bahvior가 문제가 될 수 있습니다. –

+1

@Aravind OpenGroup * vfork()에 의해 생성 된 프로세스가 반환 값을 저장하는 데 사용되는 pid_t 유형의 변수 이외의 데이터를 수정하면 동작이 정의되지 않는다는 점을 제외하고 vfork() 함수는 fork()와 동일해야합니다. vfork() 또는 vfork()가 호출 된 함수에서 반환하거나 _exit() 또는 exec 함수 제품군 중 하나를 성공적으로 호출하기 전에 다른 함수를 호출합니다. * –

관련 문제