首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个共享库使用的变量值

多个共享库使用的变量值
EN

Stack Overflow用户
提问于 2011-06-13 09:32:52
回答 1查看 151关注 0票数 1

我正在用C语言编写一个应用程序,它既使用用户定义的静态链接库(使用-l选项),也使用我预加载的动态链接库(使用ld-preload)。现在我有了一个从静态链接库设置的变量(套接字连接),相同的客户端套接字也将被其他共享库使用。

如何跨库声明和维护此客户端套接字的值,直到调用进程以独占方式断开连接。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-13 09:55:51

我从未这样做过,但看起来像是在放:

代码语言:javascript
复制
extern int yourfileno;

到头文件中的静态库应该可以工作。在同一个库的某个c文件中声明此全局变量。

实际上,这与在库中创建get/set例程是一样的。

有些人可能认为让静态库声明一个struct定义是更好的做法:

代码语言:javascript
复制
typedef struct {
        int fileno;
        int is_opened;
        ...other stuf;
} StatLibType;

然后让你的主程序调用类似这样的东西:

代码语言:javascript
复制
StatLibType *statlib_new_connection();

将新创建的结构传递给其他动态函数库,以便它可以使用它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6325898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档