malloc не выделяет непрерывную виртуальную память в куче?

Вы можете использовать 'awk':

awk '{print $9}' files

Это будет работать, если имя файла находится на девятом поле в строке.

0
24.09.2020, 08:57
1 ответ
  1. Когда mallocиспользует mmap, прерывание программы не имеет значения. mallocимеет два набора памяти, которые он использует :кучу (область до прерывания программы ), которой он управляет сам непосредственно (с помощью арен в библиотеке GNU C )и mmaped распределения, которые делегированы mmap. Прерывание программы отслеживает первый набор памяти, а не второй. Нет требования, чтобы второй был непрерывным.

  2. Освобожденные блоки объединяются соответствующими распределителями. Если память была выделена mallocбез mmap, это ответственность mallocза (или freeза ). Если память была выделена с помощью mmap, это ответственность mmapза (или munmapза ). Для mmaped-блоков может даже не быть смысла объединять свободные блоки — если они удалены из адресного пространства, ничего больше сделать нельзя. Объединение может происходить с блоками mmaped, но это происходит при распределении, если два выделения адресного пространства являются смежными и имеют одинаковые разрешения.

1
18.03.2021, 23:02

Теги

Похожие вопросы