如果我的进程崩溃,dlopen-ed 库会发生什么情况?
What happens to a dlopen-ed library if my process crashes?
根据文档,dlclose
递减引用计数器。但是,如果我的进程崩溃了,或者如果我没有在它完成之前调用 dlclose
它,会发生什么情况?引用计数器是否仍会递减,如果是,如何递减?
According to the documentation, dlclose decrements a reference counter.
此引用计数器位于动态加载程序内部,仅在特定进程中有意义。它对 OS(无关紧要)没有任何意义。
But what happens if my process crashes, or if I don't call dlclose it before it finishes?
你的过程“蒸发成稀薄的空气”。该进程本地的任何引用计数都会随之消失。
Will the reference counter still get decremented, and if so, how?
引用计数将不复存在。
但是,OS 对任何打开的文件和进程建立的 mmap
映射保持自己的引用计数(仅与 dlopen()
间接相关),并且 OS 将减少这些计数。如果因此,任何此类引用计数下降到 0,则相应的映射将被删除(通过 OS)。
根据文档,dlclose
递减引用计数器。但是,如果我的进程崩溃了,或者如果我没有在它完成之前调用 dlclose
它,会发生什么情况?引用计数器是否仍会递减,如果是,如何递减?
According to the documentation, dlclose decrements a reference counter.
此引用计数器位于动态加载程序内部,仅在特定进程中有意义。它对 OS(无关紧要)没有任何意义。
But what happens if my process crashes, or if I don't call dlclose it before it finishes?
你的过程“蒸发成稀薄的空气”。该进程本地的任何引用计数都会随之消失。
Will the reference counter still get decremented, and if so, how?
引用计数将不复存在。
但是,OS 对任何打开的文件和进程建立的 mmap
映射保持自己的引用计数(仅与 dlopen()
间接相关),并且 OS 将减少这些计数。如果因此,任何此类引用计数下降到 0,则相应的映射将被删除(通过 OS)。