gpt4 book ai didi

c - libc_nonshared.a 的用途是什么?

转载 作者:行者123 更新时间:2023-12-04 11:08:49 25 4
gpt4 key购买 nike

为什么libc_nonshared.a存在?它的用途是什么?我一直无法在网上找到它存在的好答案。
据我所知,它提供了某些符号( statlstatfstatatexit 等)。如果有人在他们的代码中使用这些函数之一,它将被链接到此存档中的最终可执行文件。这些函数是 POSIX 标准的一部分并且很常见,所以我不明白为什么它们不会被放在共享或静态 libc.so.6 中。或 libc.a , 分别。

最佳答案

这是 glibc 为 struct stat 的定义实现可扩展性的遗留错误。在考虑更好的机制(符号重定向或版本控制)之前。 stat 的定义-libc_nonshared.a 中的家庭功能导致结构的版本在链接时绑定(bind),并且那里的定义调用 __xstat -family 实际共享 libc 中的函数,它带有一个额外的参数,指示所需的结构版本。这个实现是 不合格符合标准,因为每个共享库最终都会获得自己的 stat 的副本-family 函数具有自己的地址,打破了指向同一函数的指针求值相等的要求。

关于c - libc_nonshared.a 的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66701091/

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