gpt4 book ai didi

c - 如何访问/打印 main 中的辅助 vector 条目?

转载 作者:IT王子 更新时间:2023-10-29 00:32:02 27 4
gpt4 key购买 nike

enter image description here

根据图像,堆栈在启动时填充有辅助 vector 条目。

我以前不知道。

我如何访问/打印它们?

int main(int argc, char *argv[], char *envp[]);

这是否意味着 main 有一个隐藏的第四个参数?

最佳答案

辅助 vector 位于环境 vector 末尾的后面,可以(根据 POSIX)作为 extern char **environ; 访问。 environ 指向指向环境变量的 char * 指针的空指针终止数组。遍历环境,直到到达 NULL,然后进一步推进一个元素并将结果转换为您想要用来访问辅助 vector 的任何类型。就个人而言,我将其视为成对出现的 size_tuintptr_t 值的数组,因为这比 elf.h 更容易和更便携> Elf32_auxv_tElf64_auxv_t 类型(无论您是为 32 位还是 64 位目标构建,这都要求您进行特殊处理)。

请注意,辅助 vector 的存在和位置并未由 POSIX 指定,但这是它们在任何使用辅助 vector 的基于 ELF-ABI 的实现中的位置。

关于c - 如何访问/打印 main 中的辅助 vector 条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7244991/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com