Я хочу использовать APR для mmap действительно большого файла, больше 4Gb. Сначала мне нужно создать файл такой большой, но я обнаружил, что функция apr_file_seek
принимает параметр типа apr_seek_where_t
который является просто псевдонимом для int. Таким образом, можно искать только первые 4 концерта. Можно ли обрабатывать большие файлы с помощью APR?
Вы можете искать несколько раз с APR_CUR.
Также обратите внимание, что int
в 32-битной системе позволяет вам искать два gibibytes вперед, а не четыре.
Также обратите внимание, что в 32-битной системе mmap
, скорее всего, не сможет отобразить более двух-трех гибайбайт. (Когда адресное пространство ограничено 32 битами, максимальное адресное пространство составляет четыре гибибайта, но операционная система должна резервировать часть этого адресного пространства для себя).