Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > как определить дно кучи?


Автор: gregbautin 27.7.2006, 15:34
Системный вызов для того, чтобы двигать верх кучи - это brk(), а вот как узнать, где дно кучи, и можно ли вообще?..
Заранее спасибо.  

Автор: GrayCardinal 27.7.2006, 16:09
Скорее никак чем как-нибудь. (g)libc лишает всяких прав на ручное управление стэком и сегментом данных. У меня даже brk ноль возвращает smile 

Автор: gregbautin 27.7.2006, 16:14
brk и должен ноль возвращать, если все корректно. Глянь man brk.
А я, кажется, придумал. Есть ведь еще sbrk(), можно его вызвать вначале работы программы. Он, как раз и возвращает то, что нужно - исходное значение верха кучи, то есть его дно.

Добавлено @ 16:14 
Спасибо за участие smile  

Автор: GrayCardinal 27.7.2006, 16:52
gregbautin
brk(NULL) ноль возвращает я имел в виду smile 
А sbrk может 
1. не быть
2. не сработать
ибо
Цитата

   brk() and sbrk() are not defined in the C Standard and are deliberately excluded  from
       the POSIX.1 standard (see paragraphs B.1.1.1.3 and B.8.3.3).
 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)