Какое преимущество: shm_open следует за mmap?
Почему бы не создать обычный файл, а затем передать это fd в mmap?
Я не вижу преимущества shm_open - это просто ссылки, не так ли?
Я прочитал человека всей семьи. Мне кажется, что "секрет" находится в действии mmaping - файл "type" кажется бессмысленным.
Любые указатели будут хорошими, особенно с учетной записью производительности.
Мой контекст - это (циклический перезаписываемый) буфер (скажем, 128 МБ), который будет постоянно записываться как один процесс и постоянно сбрасываться другим.
В качестве примера: что случилось с этим открытым /mmap.
ИЗМЕНИТЬ
Если быть точным, это одно из следующих лучше, чем другое: fd = open("/dev/shm/myshm.file", O_CREAT|O_RDWR, S_IRUSR | S_IWUSR);
mem = mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
против fd = shm_open("/myshm.file", O_RDWR|O_CREATE, S_IRUSR | S_IWUSR);
mem = mmap(...same as before...);
Когда я создал файл с регулярным open под /dev/shm fs и сбросил на него Gig мусора, моя доступная память опустилась на 1G, и мое доступное дисковое пространство оставалось прежним.
Какая разница между двумя методами?