Вектор aux расположен сразу за концом вектора среды, который доступен (для POSIX) как extern char **environ;
. environ
указывает на массив с окончанием NULL-указателя char *
указателей на переменные окружения. Итерируйте по среде, пока не достигнете NULL
, затем продвиньтесь еще на один элемент и приведите результат к любому типу, который вы хотите использовать для доступа к вектору aux. Лично я рассматриваю это как массив значений size_t
или uintptr_t
, которые идут парами, поскольку это проще и более переносимо, чем типы elf.h
Elf32_auxv_t
и Elf64_auxv_t
(для которых требуется особый случай создаете ли вы 32-битную или 64-битную цель).
Обратите внимание, что POSIX не определяет существование и местоположение вектора aux, но именно здесь они будут расположены в любой реализации на основе ELF-ABI, в которой используется вектор aux.