gpt4 book ai didi

c++ - 通过 dlsym 访问 C 中的阴影全局变量不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:01:04 24 4
gpt4 key购买 nike

int myvar=100;

main()
{
pid_t (*f) (void );
int *ip;
int myvar=10;

f = (pid_t(*) (void)) dlsym(RTLD_NEXT, "getpid");
ip = (int *) dlsym(RTLD_NEXT, "errno");
if (ip)
printf("%d \r\n", *ip);
ip = (int *) dlsym(RTLD_NEXT, "myvar");
if (ip)
printf("%d \r\n", *ip); //not work where is i am wrong
}

最佳答案

getpiderrno 符号由 libc 导出。myvvar 符号在您的可执行文件中,可能未导出。

objdump -T 会帮你检查符号是否导出。

$ objdump -T /lib/libc.so.6 | grep -w getpid
00c9c570 g DF .text 00000036 GLIBC_2.0 getpid

关于c++ - 通过 dlsym 访问 C 中的阴影全局变量不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4612904/

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