У меня проблема с mmap, которую я не могу решить. Вот настройка: я выделяю огромный многомерный массив в память с помощью malloc, заполняю его своими значениями и затем хочу сохранить его в файл. Массив содержит 3200000000 байт. Машина является 64-битной и имеет достаточно памяти для этого.
Linux 2.6.32-27-server #49-Ubuntu SMP Thu Dec 2 02:05:21 UTC 2010 x86_64 GNU/Linux
Создание файла с помощью mmap работает просто отлично, я получаю указатель ptrFile.
Когда я записываю свой массив в этот указатель ptrFile, программа завершается с ошибкой.
После нескольких отладок я вижу, что два буфера перекрываются. Массив данных начинается с адреса 0x7FEC47FFF010, а указатель, возвращаемый mmap, равен 0x7FEA2543E000. Я пытался решить эту проблему, но результат тот же. Если я ограничу размер копируемого файла до 1000 байт, он будет работать нормально.
Почему два выделенных указателя перекрываются?
Большое спасибо!
- J