2012-09-26 3 views
0

안녕하세요 저는 공유 메모리 (C++) 클래스 객체가 있으면이 포인터가 관련이없는 경우에 사용되는 경우 poiner 인 멤버 변수를 추가하는 것은 의미가 없다는 것을 알았습니다 프로세스가 동일한 것을 액세스 할 수 있습니다. 그러나 어떻게 공유 된 메모리 내에 링크 된리스트를 만드는 것이 가능한가? 하나의 shm 객체가 다른 shm 객체를 가리키고 있다고 가정합니다. 관련없는 프로세스가 shm 내부의 체인을 통해 반복 할 수있는 방식으로 달성 할 수 없습니까? 가능하다면 어떻게 될까요?shm 객체를 다른 shm 객체에 연결하는 방법

답변

0

좋아요, 예를 들어 관련된 구조의 정확한 크기를 아는 등 SHM에서 두 구조 사이의 거리를 측정 할 수있는 것으로 나타났습니다. 당신이 바람직 페이지 정렬 임의의 거리에 배치 그렇다면, 당신은 단지 mmap에 의해 반환 된 시작 포인터까지의 거리를 추가 할 수 있으며 그 두 번째를 가리키는 것 등 제 예 :

items[i].start = (void*)((char*)items[0].start + calcoffset) 
관련 문제