| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Программирование под Unix/Linux > mmap не хочет отображать память |
| Автор: kosmonaFFFt 9.12.2008, 16:01 | ||
| Доброго всем времени суток. имеется такой код:
так вот, mmap упорно не желает отображать файл на память, выдавая либо 19 ошибку (ФС не поддерживает отображаемые на память файлы, это когда пытаюсь отобразить файл на /home разделе), либо 9 - это неверный файловый дескриптор (когда пытаюсь отобразить файл из специально созданной папки /test на корневом разделе). Права на чтение/запись в файлы есть. Проверял дескриптор файла на адекватность путем записи туда чего-нибудь - все нормально работает, в файло запись происходит, из файла читается. Размер файла превосходит размер страницы памяти. Подскажите, плс, как с этим бороться. |
| Автор: JackYF 9.12.2008, 18:29 |
| kosmonaFFFt, интересно. Ядро какое? Какие ФС установлены на разделах /home и /test? |
| Автор: kosmonaFFFt 9.12.2008, 18:58 | ||
| Debian GNU/Linux Lenny Beta2 kernel = 2.6.24-1-686 ФС - ext3 кусок из fstab
|
| Автор: MAKCim 10.12.2008, 16:46 | ||
| kosmonaFFFt, сходу можно сказать, что вот это условие
некорректно для проверки на ошибку |
| Автор: kosmonaFFFt 10.12.2008, 18:03 | ||||
А какое корректное? З.Ы. Проверял вручную - после открытия в файл пишет и из файла читает. |
| Автор: JackYF 10.12.2008, 21:17 |
| Сколько возвратила getpagesize(), что будет, если поставить вместо этого sysconf(_SC_PAGE_SIZE) ? |
| Автор: MAKCim 10.12.2008, 22:41 |
< 0 Добавлено через 1 минуту и 38 секунд JackYF, сколько бы не возвратила, главное чтобы не ноль, а не ноль будет по определению |
| Автор: kosmonaFFFt 12.12.2008, 21:17 |
| Возвратила 4096, но это уже не важно, я замутил на съемном винте новый раздел, и на нем mmap работает и файл на память отображает. Хотя раздел с теми же параметрами, что и /home. В общем магия какая-то. Думаю тему можно закрывать. Спасибо за помощь. |