如何在运行时检索 dylib 的路径?
在 OS X 上,dylib 中的代码如何在运行时找到加载它的路径?
我来自 Windows 背景,习惯于调用 GetModuleFileName(dllHandle,...)
。
存在 NSGetExecutablePath() ,它将为我提供当前进程的可执行文件的路径。有没有相当于给我当前 dylib 路径的东西?
On OS X, how can code in a dylib find the path it was loaded from, at runtime?
Coming from a Windows background, I'm used being able to call GetModuleFileName(dllHandle,...)
.
There exists NSGetExecutablePath()
which will give me the path of the executable for the current process. Is there an equivalent to give me the current dylib path?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用 dladdr(3)。给定内存地址,dladdr() 输出一个结构,其中包含包含该地址的库的路径以及其他数据。例如,在您的图书馆内:
Use dladdr(3). Given a memory address, dladdr() outputs a structure that has, amongst other data, the path of the library containing the address. For example, inside your library: