Как я могу это сделать?
В общем, вы не можете.
Если вы хотите вставить низкоуровневые функции, такие как malloc
, вашЛучше всего использовать только прямые системные вызовы более низкого уровня.
Использование чего-либо более высокого уровня, такого как shm_open
, неизбежно приведет к проблемам в будущем.Даже если shm_open
сегодня не использовал librt
и dlopen
, ничто не мешает ему сделать это завтра (и сломать ваш тщательно выстроенный карточный домик).
Помимо очевидных проблем прямой рекурсиитакже могут возникнуть проблемы с «порядком инициализации» (например, shm_open
может потребовать инициализации malloc
и librt
, что не гарантируется при вызове самого первого malloc
).