Я пытаюсь выяснить, как переназначить файлы с отображением памяти на Mac (когда я хочу расширить доступное пространство).
Я вижу, что наши друзья в мире Linux имеют mremap
, но я не могу найти такую функцию в заголовках на моем Mac. /Developer/SDKs/MacOSX10.6.sdk/usr/include/sys/mman.h
имеет следующее значение:
-
mmap
-
mprotect
-
msync
-
munlock
-
munmap
- но не
mremap
man mremap
подтверждает мои страхи.
В настоящее время мне нужно munmap
и mmmap
, если я хочу изменить размер отображаемого файла, что приводит к аннулированию всех загруженных страниц. Должен быть лучший способ. Конечно?
Я пытаюсь написать код, который будет работать на Mac OS X и Linux. Я мог бы согласиться на макрос, чтобы использовать лучшую функцию в каждом случае, если бы мне пришлось, но я бы предпочел сделать это правильно.