fork는 이함수를 호출한 그로세스와 같은 프로세스를 만든다. 따라서 새로 만들어진 자식 프로세스는 부모 프로세스에게 다음 특징을 상속 받는다.

 

- 부모 프로세스의 실제 사용자 ID, 셀제 그룹 ID, 유효 사용자 ID 그리고 유효 그룹ID
- 부모 프로세스의 set-user-id, set-group-id 모드 비트
- 부모프로세스의 보조 그룹 ID 목록
- 부모 프로세스의 저장된 사용자 ID와 저장된 그룹 ID
- 부모 프로세스의 모든 환경변수와 부모 프로세스가 열고 있는 모든 파일 디스크립너 그리고 파일 오프셋
- 부모 프로세스가 파일 디스크립터에 설정안 close-on-exec 플래그
- 부모 프로세스의 파일 모드 생성 마스크(umask)
- 부모 프로세스가 설정한 신호 처리 방법(SIG_DFL, SIG_IGN, SIG_HOLD또는 신호 처리 함수 주소값)
- 부모 프로세스의 세션 ID와 프로세스 그룹 ID
- 부모 프로세서의 제어 터미널
- 부모 프로세스의 nice값
- 부모 프로세스의 현재 작업디렉토리
- 부모 프로세스의 자원 제한값


자식 프로세스와 부모 프로세스와의 다른점

- 자식 프로세스에는 자신만의 유일한 프로세스 ID가 있다.
- 자식 프로세스에는 자신만의 부모 프로세스 ID가 있다.
- 자식 프로세스에는 부모 프로세스가 열고 있는 파일 디스크립터에 대한 자신만의 복사본이 있다.
  따라서 복사본 파일 디스크립터를 닫는다 해도 부모 프로세스에게 아무런 영향을 미치지 않는다.
  그러나 부모와 자식 프로세스가 각 파일 디스크립터의 오프셋값을 공유하기 때문에 한 파일에 동시에

  쓰려고 한다면 결과가 섞일수도 있다.

  또한 한 파일에서 동시에 읽으려고 한다면 데이터를 일부만 읽게 될수도 있다.
- 자식 프로세스는 부모 프로세스가 만든 파일 잠금은 상속 받지 않는다.
- 자식 프로세스의 대기 시놓 집합은 빈 집합으로 초기화된다.

Posted by cyj4369
,