Мне трудно понять параметр размера mmap (извините, мой C ржавый).Например (взято из другого 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 (контейнера)?
Спасибо!