我正在用C语言编写一个应用程序,它既使用用户定义的静态链接库(使用-l选项),也使用我预加载的动态链接库(使用ld-preload)。现在我有了一个从静态链接库设置的变量(套接字连接),相同的客户端套接字也将被其他共享库使用。
如何跨库声明和维护此客户端套接字的值,直到调用进程以独占方式断开连接。
谢谢
发布于 2011-06-13 09:55:51
我从未这样做过,但看起来像是在放:
extern int yourfileno;到头文件中的静态库应该可以工作。在同一个库的某个c文件中声明此全局变量。
实际上,这与在库中创建get/set例程是一样的。
有些人可能认为让静态库声明一个struct定义是更好的做法:
typedef struct {
int fileno;
int is_opened;
...other stuf;
} StatLibType;然后让你的主程序调用类似这样的东西:
StatLibType *statlib_new_connection();将新创建的结构传递给其他动态函数库,以便它可以使用它。
https://stackoverflow.com/questions/6325898
复制相似问题