gpt4 book ai didi

c - 在 main 中获取 __attribute__ ((constructor)) 函数的值

转载 作者:行者123 更新时间:2023-11-30 16:09:53 24 4
gpt4 key购买 nike

我正在尝试创建一个像这样的 before-main 评估:

int evaluate(int argc, char** argv) __attribute__ ((constructor));
int evaluate(int argc, char** argv)
{
int result = atoi(argv[1]);
if (result == 0)
return 1;
else
return 0;
}

int main(?????)
{
if (????? == 0)
printf("Wrong number.");
else
printf("It is 1!");
}

有办法做到这一点吗?我这样做纯粹是为了让自己更熟悉 C、传递命令行参数和使用 pre-main 函数。

最佳答案

这非常依赖于平台。 glibc 动态加载器将 argc、argv 和 envp 传递给 ELF 构造函数,因此您可以通过这种方式访问​​程序参数。据我所知,这是一个未记录的动态加载器功能,因此您可能不应该依赖此行为。

对于检查结果,您必须将其写入全局变量(或将其记录在其他全局数据结构中)。该实现丢弃了

关于c - 在 main 中获取 __attribute__ ((constructor)) 函数的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58999228/

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