gpt4 book ai didi

c - dlclose()/FreeLibrary()失败后句柄的情况

转载 作者:太空宇宙 更新时间:2023-11-04 02:53:20 26 4
gpt4 key购买 nike

我将在运行时加载共享库的依赖于操作系统的 API 包装在一个可移植的接口(interface)中。

问题是,在记录 close() 函数时,我注意到没有关于 dlclose() 或 FreeLibrary() 函数失败时会发生什么情况的文档。句柄是否仍然可用,因为图书馆无法关闭?或者它处于某种损坏的状态?我还能使用它吗?

我需要此信息来为我的 API 用户编写适当的文档,并在 C++ 接口(interface)中提供一些异常保证。

最佳答案

一旦您调用 dlcose,该句柄就不再对您有效:

http://pubs.opengroup.org/onlinepubs/007904975/functions/dlclose.html

Once an object has been closed using dlclose() an application should assume that its symbols are no longer available to dlsym().

dlclose() 很可能什么都不做。因为其他库也有库的句柄。如果关闭失败,则通常意味着其他人正在使用它。但这并不意味着您可以通过您的 handle 再次使用它(已经死了)。

错误通常表示您的句柄无效。

关于c - dlclose()/FreeLibrary()失败后句柄的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19877176/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com