mmap의 크기 매개 변수를 이해하는 데 어려움을 겪고 있습니다 (미안하지만 C가 녹슬지 않습니다). 예를 들어 우리가있는 경우mmap 크기 매개 변수 이해
(다른 SO 게시물에서 촬영) :
이typedef struct container {
int counter;
} container;
container *memory;
memory = mmap(NULL, 500*sizeof(container), PROT_READ|PROT_WRITE, MAP_SHARED, -1, 0);
container *entry = (container *) malloc(sizeof(container));
entry->counter = 1;
// Just arbitrarily
memory[1] = *entry;
메모리 [1] 단순히 컨테이너에 포인터되지 않습니다 따라서는 sizeof (용기)하지? 아니면 mmap을 사용하여 컨테이너의 500 개 항목 만 삽입 할 수 있는지 확인하는 방법이 있습니까? 또는 sizeof (컨테이너) 단위로 메모리에 액세스해야합니까?
감사합니다.
메모리는 컨테이너에 대한 포인터이므로 메모리 [1]은 컨테이너입니다. * (메모리 + 1)과 같습니다. –