Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> mmap не хочет отображать память 
V
    Опции темы
kosmonaFFFt
Дата 9.12.2008, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 538
Регистрация: 14.4.2008
Где: Иннополис

Репутация: 1
Всего: 5



Доброго всем времени суток.

имеется такой код:
Код

  //Try open file.
  int mapped_file_handle = open(mapped_file_name.c_str(), O_RDWR);

  if (mapped_file_handle == 0)
    {
      std::cout << "ERROR!!! File not opened!!!" << std::endl;
      return 1;
    }
  //Try map file.
  void * file_map = mmap(0, getpagesize(), PROT_READ | PROT_WRITE, MAP_SHARED, mapped_file_handle, 0);
  if (file_map == MAP_FAILED)
    {
      std::cout << "ERROR!!! File not mapped!!!" << std::endl
                << "Error code = " << errno << std::endl;
      return 1;
    }


так вот, mmap упорно не желает отображать файл на память, выдавая либо 19 ошибку (ФС
не поддерживает отображаемые на память файлы, это когда пытаюсь отобразить файл на /home
разделе), либо 9 - это неверный файловый дескриптор (когда пытаюсь отобразить файл из специально созданной папки /test на корневом разделе). Права на чтение/запись в файлы есть.
Проверял дескриптор файла на адекватность путем записи туда чего-нибудь - все нормально работает, в файло запись происходит, из файла читается. Размер файла превосходит размер страницы памяти.

Подскажите, плс, как с этим бороться.


--------------------
user posted image
PM MAIL ICQ   Вверх
JackYF
Дата 9.12.2008, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 3
Всего: 162



kosmonaFFFt, интересно. Ядро какое? Какие ФС установлены на разделах /home и /test?


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
kosmonaFFFt
Дата 9.12.2008, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 538
Регистрация: 14.4.2008
Где: Иннополис

Репутация: 1
Всего: 5



Debian GNU/Linux Lenny Beta2
kernel = 2.6.24-1-686
ФС - ext3

кусок из fstab

Код

/dev/sda5       /               ext3         errors=remount-ro                                 0       1
/dev/sda7       /home           ext3         defaults                                          0       2



--------------------
user posted image
PM MAIL ICQ   Вверх
MAKCim
Дата 10.12.2008, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



kosmonaFFFt
сходу можно сказать, что вот это условие
Код

if (mapped_file_handle == 0)
    {
      std::cout << "ERROR!!! File not opened!!!" << std::endl;
      return 1;
    }

некорректно для проверки на ошибку


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
kosmonaFFFt
Дата 10.12.2008, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 538
Регистрация: 14.4.2008
Где: Иннополис

Репутация: 1
Всего: 5



Цитата(MAKCim @ 10.12.2008,  16:46)
kosmonaFFFt
сходу можно сказать, что вот это условие
Код

if (mapped_file_handle == 0)
    {
      std::cout << "ERROR!!! File not opened!!!" << std::endl;
      return 1;
    }

некорректно для проверки на ошибку

А какое корректное?

З.Ы. Проверял вручную - после открытия в файл пишет и из файла читает.


--------------------
user posted image
PM MAIL ICQ   Вверх
JackYF
Дата 10.12.2008, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 3
Всего: 162



Сколько возвратила getpagesize(), что будет, если поставить вместо этого sysconf(_SC_PAGE_SIZE) ?


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
MAKCim
Дата 10.12.2008, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



Цитата(kosmonaFFFt @  10.12.2008,  18:03 Найти цитируемый пост)
А какое корректное?

< 0

Добавлено через 1 минуту и 38 секунд
JackYF
сколько бы не возвратила, главное чтобы не ноль, а не ноль будет по определению


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
kosmonaFFFt
Дата 12.12.2008, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 538
Регистрация: 14.4.2008
Где: Иннополис

Репутация: 1
Всего: 5



Возвратила 4096, но это уже не важно, я замутил на съемном винте новый раздел, и на нем
mmap работает и файл на память отображает. Хотя раздел с теми же параметрами, что и /home.
В общем магия какая-то. smile
Думаю тему можно закрывать.
Спасибо за помощь.


--------------------
user posted image
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0740 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.