当前位置: 技术问答>linux和unix
在IBM上使用动态链接库编译多进程程序时遇到的问题~
来源: 互联网 发布时间:2016-03-07
本文导语: 在IBM上 对于dlopen(const char * filename,int flag) 当该函数在主进程中被调用打开动态链接库文件时,返回成功~ 但是当该函数在子进程中调用打开动态链接库文件时,上述函数返回值为空~ dlerror()函数返回内容为:b...
在IBM上
对于dlopen(const char * filename,int flag)
当该函数在主进程中被调用打开动态链接库文件时,返回成功~
但是当该函数在子进程中调用打开动态链接库文件时,上述函数返回值为空~
dlerror()函数返回内容为:bad address.
在HP上不会出现此类问题~
不知道大家是否遇到过此类问题呢~
对于dlopen(const char * filename,int flag)
当该函数在主进程中被调用打开动态链接库文件时,返回成功~
但是当该函数在子进程中调用打开动态链接库文件时,上述函数返回值为空~
dlerror()函数返回内容为:bad address.
在HP上不会出现此类问题~
不知道大家是否遇到过此类问题呢~
|
LD_PRELOAD或是编译的时候再加个参数试试。也有可能是你程序里面其他的函数报的错呢?
|
如果是程序其他函数报错,HP上也会出错。
从楼主描述的情况看,这时候也许你该从环境变量上找找问题,filename这个你是传的绝对路径?两个运行环境的默认文件打开标志位是否有差异?
关于dlopen我也有个没解决的问题,dlopen打开和后续的调用都没问题,就是不能用dlclose来释放,一dlclose就core掉,试过多种方法都没解决问题,一直郁闷中。
从楼主描述的情况看,这时候也许你该从环境变量上找找问题,filename这个你是传的绝对路径?两个运行环境的默认文件打开标志位是否有差异?
关于dlopen我也有个没解决的问题,dlopen打开和后续的调用都没问题,就是不能用dlclose来释放,一dlclose就core掉,试过多种方法都没解决问题,一直郁闷中。