공유메모리의 식별자에 관하여

jinyeoulman의 이미지

shmget로 공유메모리를 생성한 식별자를 다른 프로세스는

어떻게 알수 있는지요?

예를 들어서 A,B의 각각 별개의 프로세스(프로그램?)가 있고,

A가 공유메모리에 값을 저장, B가 공유메모리에서 값을 읽어 오는

걸 생각했을때, B는 공유메모리에 접근하기위해서 A가 생성한

공유메모리의 식별자가 필요 합니다.

B는 이 식별자를 어떻게 얻을수 있습니까?

혹은 A,B 둘자 공통의 특정한 문자열상수등을 키로 한 공유메모리를
접근하는 방법은 없나요?

bugiii의 이미지

파일 이름으로 하지 않던가요? man shmget 하면 ftok 가 나올겁니다...

UNP V2 에 자세히 나와있습니다.

jinyeoulman의 이미지

bugiii wrote:
파일 이름으로 하지 않던가요? man shmget 하면 ftok 가 나올겁니다...

UNP V2 에 자세히 나와있습니다.

답변 감사합니다...조금은 이해가 갈듯 하는군요.

키로 IPC_PRIVATE를 사용한다면 ftok로 키를 생성할 필요도 없고,

다른 프로세스에서도 IPC_PRIVATE를 키로 사용해서 식별자를

얻을수 있는 거라고 이해 했습니다만 제 생각이 맞는지요?

kdoll의 이미지

말 그대로 IPC_PRIVATE는

한 프로세서에서만 사용하는 것으로 알고 있는데요.

일반적으로 KEY값을 DEFINE하고 사용하지 않나요?

공유할 공유메모리 KEY값을 정해놓고 사용하는 것으로 알고 있는데요.