Что делает системный вызов brk ()?

Согласно руководству программиста Linux:

brk () и sbrk () изменяют местоположение прерывания программы, которое определяет конец сегмента данных процесса.

Что здесь означает сегмент данных? Это просто сегмент данных или данные, BSS и куча вместе?

Согласно wiki:

Иногда области данных, BSS и кучи вместе называются «сегментом данных».

Я не вижу причин для изменения размера только сегмента данных. Если это данные, BSS и куча вместе, тогда это имеет смысл, поскольку куча получит больше места.

Это подводит меня к моему второму вопросу. Во всех статьях, которые я прочитал до сих пор, автор говорит, что куча растет вверх, а стек - вниз. Но они не объясняют, что происходит, когда куча занимает все пространство между кучей и стеком?

enter image description here

173
задан Sandra Rossi 4 August 2019 в 10:46
поделиться