Системное программирование в UNIX средствами Free Pascal

Вызовы brk и sbrk


Для полноты изложения необходимо упомянуть вызовы brk и sbrk. Это базовые низкоуровневые вызовы UNIX для динамического выделения памяти. Они изменяют размер сегмента данных процесса или, если быть более точным, смещают верхнюю границу сегмента данных процесса. Вызов brk устанавливает абсолютное значение границы сегмента, а вызов sbrk – ее относительное смещение. В большинстве ситуаций для выделения динамической памяти рекомендуется использовать функции семейства malloc, а не эти вызовы.

Упражнение 12.1. Односвязный список нашего примера может использоваться для реализации стека, в котором первым используется последний добавленный элемент. Процедура add_member будет соответствовать операции вставки (push) данных в стек. Напишите процедуру, реализующую обратную операцию извлечения (pop) данных из стека за счет удаления первого элемента списка.

Упражнение 12.2. Напишите программу, использующую функции семейства malloc для выделения памяти для целого числа, массива из трех переменных типа integer и массива указателей на переменные типа char.



Содержание раздела