shmget 의 3번째 인자 플래그에서 IPC_PRIVATE 의 의미는 무엇입니까?

sia79의 이미지

if( ( shmid = shmget( key1, key1_size, IPC_PRIVATE ) ) < 0 ) {
  if( ( shmid = shmget( key1, key1_size, 0660 | IPC_CREATE ) ) < 0 ) {
    error code...
  }
}
 
process code...

다른 분이 만드신 소스를 분석 중에 있습니다만, ( 자료가 소스뿐이 없습니다. )

공유메모리를 만들 때, IPC_PRIVATE 가 KEY 인자로 쓰일 수 있다는 것 외에

플래그 값으로 쓰인 것은 처음 보았고, 첫 번째 줄을 쓴 의도를 잘 모르겠습니다.

안되는 것은 아닌데... 무언가 이유가 있는 것은 아닐까 하는 의구심에...

제 생각에는 그냥 두번째 줄 하나로도 충분한 것같지만...;;;

이 분 코드가 함수 선언도 아래와 같이 쓰십니다.

int
func ( arg1 arg2)
int * arg1;
char * arg2;
{
  function code... 
}

혹시 예전에는 공유메모리를 저렇게 만들었었나 하는 생각도 들더군요.

첫 줄의 코드가 필요 있다. 없다로만 답변 주셔도 감사하겠습니다.