![]() |
Модераторы: xvr |
![]() ![]() ![]() |
|
Ivan182 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 2.2.2007 Репутация: нет Всего: нет |
malloc позволяет выделить память до 2-х Гб.
как выделить память больше, например, 8Гб? система debian, проц 32-х разрядный. unix-админ включил опцию, позволяющую "эмулировать" 64-х разрядное адресное пространство, то есть теоретически система может выделить 8 Гб. проблема видимо в с, а точнее в реализации функции malloc. ![]() подскажите, плиз. |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 1 Всего: 101 |
проблема видимо в том, что тебе нужен компилер 64-разрядного кода, тогда твой size_t будет другой и malloc соответственно
|
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
бред может имелось в виду включение PAE? если да, то PAE всего лишь расширяет разрядность физического адреса до 36 (Intel) или 40 (AMD) бит, что позволяет адресовать > 4Гб физической памяти однако в любом случае на 32-х разрядной системе размер линейного адресного пространства (линейного адреса) ограничен 32-мя разрядами поэтому даже если включен PAE и общий размер физической памяти > 4Гб, то выделить больше [2/3]Гб - x байт не получится (больше просто отобразить не получится) решение состоит в использовании концепции AWE, точнее в ее реализации (через модуль ядра) ![]() но даже в этом случае плоского 8-ми гигабайтного линейного буфера не будет Это сообщение отредактировал(а) MAKCim - 15.5.2008, 18:10 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 1 Всего: 101 |
да нет решений для стандартного С на 32-разрядной платформе - по определению.
PAE на клиентское приложение вообще не влияет. AWE позволяет приложению использовать больше памяти, но не средствами языка, а через AWE API. MAKCim, AWE под *nix? Я думал это исключительно мелкосовтовский API, а в юниксах - mmap() |
|||
|
||||
MAKCim |
|
||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
когда научимся внимательно читать? ![]() смотря с какой стороны посмотреть
по определению все 8Гб отобразить не получится, а использовать можно (частями) решение было предложено выше Это сообщение отредактировал(а) MAKCim - 16.5.2008, 00:13 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
GrayCardinal |
|
|||
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 8 Всего: 58 |
Ivan182,
А можно узнать чем не устраивает простой большой файло ? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |