免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 878 | 回复: 3
打印 上一主题 下一主题

怎样在库中知道自己的库文件名称. [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-10-28 18:14 |只看该作者 |倒序浏览
需要编个动态库,但是在动态库中需要知道自身的文件名称和路径. 怎样实现? 谢谢

论坛徽章:
0
2 [报告]
发表于 2006-10-29 00:14 |只看该作者
原帖由 jkimber 于 2006-10-28 18:14 发表
需要编个动态库,但是在动态库中需要知道自身的文件名称和路径. 怎样实现? 谢谢

>>
>>
>>getcwd可以获得文件路径,前提是执行目录不能被更改。
>>对于主程序获取文件名称只想起来用argv[0]获取,其他的方法没有想到。
>>
>>

论坛徽章:
0
3 [报告]
发表于 2006-10-29 09:55 |只看该作者
需要编个动态库,但是在动态库中需要知道自身的文件名称和路径. 怎样实现? 谢谢

什么样的需求会要求这样做?好象没有必要吧。

论坛徽章:
0
4 [报告]
发表于 2006-10-30 14:09 |只看该作者
可以用系统程序“ldd”测试一下,看自己究竟链接了哪些库,库的路径也能同时显示。下面这个例子也许对您有启发:

[/home/campus/src/db_campus]# ldd -d ./tester
        libcampus_dbc.so => /usr/lib/libcampus_dbc.so (0xf6fd1000)
        libpq.so.3 => /usr/lib/libpq.so.3 (0x00505000)
        libpgsql.so => not found
        libc.so.6 => /lib/tls/libc.so.6 (0x0039f000)
        libcampus_pub.so => /usr/lib/libcampus_pub.so (0xf6f1a000)
        libpgsql.so => not found
        libssl.so.4 => /lib/libssl.so.4 (0x00bd2000)
        libcrypto.so.4 => /lib/libcrypto.so.4 (0x00986000)
        libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00909000)
        libcom_err.so.2 => /lib/libcom_err.so.2 (0x008e1000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x00c65000)
        libresolv.so.2 => /lib/libresolv.so.2 (0x00616000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x00ba6000)
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0x005de000)
        /lib/ld-linux.so.2 (0x00382000)
        libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00970000)
        libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x008e6000)
        libdl.so.2 => /lib/libdl.so.2 (0x004ed000)
        libz.so.1 => /usr/lib/libz.so.1 (0x004f3000)
[/home/campus/src/db_campus]#
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP