.so中函数重入的问题

发布于 2022-07-27 13:40:56 字数 84 浏览 19 评论 5

一个动态库中有函数分别存取动态库的全局变量static int a和int b,当其他程序调用这个库的函数存取a,b时:
调用a的函数是不可重入?b的可以?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

南笙 2022-07-28 05:45:30

原帖由 snow_insky 于 2006-10-26 11:27 发表
我觉得您老还是把动态链接库的概念给搞错了,动态链接库,其实是相对于静态链接库而言的,它和静态库的区别是,在系统中只有一份代码段被所有程序共享,它的全局变量以及其它的数据并不是被所有程序共享的,还是每 ...

恩,确实确实,多谢指教!

樱&纷飞 2022-07-28 05:40:33

谢谢,受益匪浅。
自己想写一个库,里面包含打开设备文件的初始化函数。不知道把这些函数放在动态库中,多个程序调用时,会不会争夺设备。

奢欲 2022-07-28 05:20:38

原帖由 snow_insky 于 2006-10-26 11:27 发表
我觉得您老还是把动态链接库的概念给搞错了,动态链接库,其实是相对于静态链接库而言的,它和静态库的区别是,在系统中只有一份代码段被所有程序共享,它的全局变量以及其它的数据并不是被所有程序共享的,还是每 ...

说的有理。

走野 2022-07-28 04:33:20

我觉得您老还是把动态链接库的概念给搞错了,动态链接库,其实是相对于静态链接库而言的,它和静态库的区别是,在系统中只有一份代码段被所有程序共享,它的全局变量以及其它的数据并不是被所有程序共享的,还是每个程序单独拥有的。

只有当某个程序中多个线程同时访问该全局变量,才可能产生竞争。而且一般而言动态库是不可能让你直接访问某个变量的,它肯定有它的操作接口。如果没有,那么只能说这个库的实现者太××了。

热鲨 2022-07-28 03:02:28

应该都不可重入。
这两个变量的生存周期都是一样的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文