Я читал в Advanced Unix Programming (а также в нескольких других книгах), что Linux malloc()
использует системный вызов Linux sbrk()
для запроса памяти из операционной системы.
Я смотрю на код glibc malloc.c
и вижу много упоминаний sbrk()
в комментариях, но не упоминаемых непосредственно в коде.
Как/где sbrk()
упоминается/используется, когда malloc()
запрашивает память у ОС?
(Это может быть общее непонимание с моей стороны того, как выполняются системные вызовы из библиотеки времени выполнения C. Если это так, мне было бы интересно узнать, как они выполняются??)
sbrk
, между системным вызовом в C и функцией нет никакой разницы, за исключением того, что управление полностью осуществляется операционной системой до тех пор, пока системный вызов не завершится. - person millinon   schedule 01.01.2014sbrk
удален из последнего стандарта Posix. - person Basile Starynkevitch   schedule 01.01.2014